<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN" class="translated-ltr">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>第7章备份和恢复</title>
		<link rel="stylesheet" href="mvl.css" type="text/css">
		<meta name="generator" content="DocBook XSL Stylesheets + chunker.py v1.9.2">
		<link rel="start" href="index.html" title="{书名}">
		<link rel="up" href="" title="">
		<link rel="prev" href="security.html" title="第6章安全性">
		<link rel="next" href="optimization.html" title="第8章优化">
		<link type="text/css" rel="stylesheet" charset="UTF-8" href="https://translate.googleapis.com/translate_static/css/translateelement.css">
	</head>
	<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
		<div class="navheader">
			<table width="100%" summary="Navigation header">
				<tbody>
					<tr>
						<th colspan="3" align="center">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第7章备份和恢复</font>
							</font>
						</th>
					</tr>
					<tr>
						<td width="20%" align="left"><a accesskey="p" href="security.html">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">上一页</font>
								</font>
							</a>&nbsp;</td>
						<th width="60%" align="center"></th>
						<td width="20%" align="right">&nbsp;<a accesskey="n" href="optimization.html">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">下一个</font>
								</font>
							</a></td>
					</tr>
				</tbody>
			</table>
			<hr>
		</div>
		<div class="chapter">
			<div class="titlepage">
				<div>
					<div>
						<h1 class="title"><a name="backup-and-recovery"></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第7章备份和恢复</font>
							</font>
						</h1>

					</div>

				</div>

			</div>
			<div class="toc">
				<p><b>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">目录</font>
						</font>
					</b></p>
				<dl class="toc"><dt><span class="section"><a href="backup-and-recovery.html#backup-types">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">7.1备份和恢复类型</font>
								</font>
							</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#backup-methods">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">7.2数据库备份方法</font>
								</font>
							</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#backup-strategy-example">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">7.3备份和恢复策略示例</font>
								</font>
							</a></span></dt>
					<dd>
						<dl><dt><span class="section"><a href="backup-and-recovery.html#backup-policy">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.3.1建立备份策略</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#recovery-from-backups">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.3.2使用备份进行恢复</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#backup-strategy-summary">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.3.3备份策略摘要</font>
										</font>
									</a></span></dt></dl>
					</dd><dt><span class="section"><a href="backup-and-recovery.html#using-mysqldump">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">7.4使用mysqldump进行备份</font>
								</font>
							</a></span></dt>
					<dd>
						<dl><dt><span class="section"><a href="backup-and-recovery.html#mysqldump-sql-format">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.1使用mysqldump以SQL格式转储数据</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#reloading-sql-format-dumps">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.2重新加载SQL格式备份</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#mysqldump-delimited-text">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.3使用mysqldump以分隔文本格式转储数据</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#reloading-delimited-text-dumps">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.4重新加载分隔文本格式备份</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#mysqldump-tips">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.5 mysqldump提示</font>
										</font>
									</a></span></dt></dl>
					</dd><dt><span class="section"><a href="backup-and-recovery.html#point-in-time-recovery">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">7.5使用二进制日志进行时间点（增量）恢复</font>
								</font>
							</a></span></dt>
					<dd>
						<dl><dt><span class="section"><a href="backup-and-recovery.html#point-in-time-recovery-times">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.5.1使用事件时间的时间点恢复</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#point-in-time-recovery-positions">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.5.2使用事件位置的时间点恢复</font>
										</font>
									</a></span></dt></dl>
					</dd><dt><span class="section"><a href="backup-and-recovery.html#myisam-table-maintenance">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">7.6 MyISAM表维护和崩溃恢复</font>
								</font>
							</a></span></dt>
					<dd>
						<dl><dt><span class="section"><a href="backup-and-recovery.html#myisam-crash-recovery">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.6.1使用myisamchk进行崩溃恢复</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#myisam-check">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.6.2如何检查MyISAM表是否存在错误</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#myisam-repair">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.6.3如何修复MyISAM表</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#myisam-optimization">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.6.4 MyISAM表优化</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#myisam-maintenance-schedule">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.6.5设置MyISAM表维护计划</font>
										</font>
									</a></span></dt></dl>
					</dd>
				</dl>
			</div>
			<a class="indexterm" name="idm140091710454336"></a><a class="indexterm" name="idm140091710452848"></a>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">
						备份数据库非常重要，这样您就可以恢复数据，并在发生问题时重新启动并运行，例如系统崩溃，硬件故障或用户错误地删除数据。</font>
					<font style="vertical-align: inherit;">在升级MySQL安装之前，备份也是必不可少的保护措施，它们可用于将MySQL安装转移到另一个系统或设置复制从属服务器。
					</font>
				</font>
			</p>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">
						MySQL提供了各种备份策略，您可以从中选择最适合安装要求的方法。</font>
					<font style="vertical-align: inherit;">本章讨论您应该熟悉的几个备份和恢复主题：
					</font>
				</font>
			</p>
			<div class="itemizedlist">
				<ul class="itemizedlist" style="list-style-type: disc; ">
					<li class="listitem">
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									备份类型：逻辑与物理，完整与增量等。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									创建备份的方法。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									恢复方法，包括时间点恢复。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									备份调度，压缩和加密。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									表维护，以便恢复损坏的表。
								</font>
							</font>
						</p>
					</li>
				</ul>
			</div>
			<h2><a name="idm140091710445616"></a>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">其他资源</font>
				</font>
			</h2>
			<p>
				<font style="vertical-align: inherit;">
					<font style="vertical-align: inherit;">
						与备份或维护数据可用性相关的资源包括：
					</font>
				</font>
			</p>
			<div class="itemizedlist">
				<ul class="itemizedlist" style="list-style-type: disc; ">
					<li class="listitem">
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									MySQL Enterprise Edition的客户可以使用MySQL Enterprise Backup产品进行备份。</font>
								<font style="vertical-align: inherit;">有关MySQL Enterprise Backup产品的概述，请参见</font>
							</font><a class="xref" href="mysql-enterprise.html#mysql-enterprise-backup" title="30.2 MySQL企业备份概述">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第30.2节“MySQL Enterprise Backup概述”</font>
								</font>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									有关备份问题的论坛，请访问
								</font>
							</font><a class="ulink" href="https://forums.mysql.com/list.php?28" target="_top">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">https://forums.mysql.com/list.php?28</font>
								</font>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<font style="vertical-align: inherit;"></font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span
								 class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">mysqldump的</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									详细信息</font>
								<font style="vertical-align: inherit;">可以在
								</font>
							</font><a class="xref" href="programs.html" title="第4章MySQL程序">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第4章</font>
								</font><i>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">MySQL程序中找到</font>
									</font>
								</i>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									这里描述的SQL语句的语法在
								</font>
							</font><a class="xref" href="sql-syntax.html" title="第13章SQL语句语法">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第13章</font>
								</font><i>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">SQL语句语法中给出</font>
									</font>
								</i>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									有关</font>
							</font><code class="literal">InnoDB</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									备份过程的</font>
								<font style="vertical-align: inherit;">其他信息</font>
								<font style="vertical-align: inherit;">，请参见</font>
							</font><a class="xref" href="innodb-storage-engine.html#innodb-backup" title="15.17.1 InnoDB备份">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第15.17.1节“InnoDB备份”</font>
								</font>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									复制使您可以在多个服务器上维护相同的数据。</font>
								<font style="vertical-align: inherit;">这有几个好处，例如，即使给定服务器脱机或失败，也可以使客户端查询负载分布在服务器上，数据可用性，以及使用从服务器进行备份而不影响主服务器的能力。</font>
								<font style="vertical-align: inherit;">请参见</font>
							</font><a class="xref" href="replication.html" title="第17章复制">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第17章，</font>
								</font><i>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">复制</font>
									</font>
								</i>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									MySQL InnoDB集群是一组产品，它们协同工作以提供高可用性解决方案。</font>
								<font style="vertical-align: inherit;">可以将一组MySQL服务器配置为使用MySQL Shell创建集群。</font>
								<font style="vertical-align: inherit;">服务器群集具有一个主服务器，称为主服务器，用作读写主服务器。</font>
								<font style="vertical-align: inherit;">多个辅助服务器是主服务器的副本。</font>
								<font style="vertical-align: inherit;">创建高可用性群集至少需要三台服务器。</font>
								<font style="vertical-align: inherit;">客户端应用程序通过MySQL路由器连接到主服务器。</font>
								<font style="vertical-align: inherit;">如果主服务器出现故障，则辅助服务器将自动升级为主服务器，并且MySQL路由器将请求路由到新主服务器。
								</font>
							</font>
						</p>
					</li>
					<li class="listitem">
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									NDB Cluster提供适用于分布式计算环境的高可用性，高冗余版本的MySQL。</font>
								<font style="vertical-align: inherit;">请参见</font>
							</font><a class="xref" href="mysql-cluster.html" title="第22章MySQL NDB Cluster 8.0">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第22章，</font>
								</font><i>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">MySQL NDB Cluster 8.0</font>
									</font>
								</i>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，它提供有关MySQL NDB Cluster 8.0的信息。
								</font>
							</font>
						</p>
					</li>
				</ul>
			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="backup-types"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">7.1备份和恢复类型</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							本节介绍不同类型备份的特征。
						</font>
					</font>
				</p>
				<h3><a name="idm140091710426688"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">物理（原始）与逻辑备份</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							物理备份由目录的原始副本和存储数据库内容的文件组成。</font>
						<font style="vertical-align: inherit;">此类备份适用于需要在出现问题时快速恢复的大型重要数据库。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							逻辑备份保存表示为逻辑数据库结构（</font>
					</font><a class="link" href="sql-syntax.html#create-database" title="13.1.12 CREATE DATABASE语法"><code class="literal">CREATE
							DATABASE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，
						</font>
					</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">语句）和内容（</font>
					</font><a class="link" href="sql-syntax.html#insert" title="13.2.6 INSERT语法"><code class="literal">INSERT</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">语句或分隔文本文件）的信息。</font>
						<font style="vertical-align: inherit;">此类备份适用于较少量的数据，您可以在其中编辑数据值或表结构，或在不同的计算机体系结构上重新创建数据。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							物理备份方法具有以下特征：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										备份包含数据库目录和文件的精确副本。</font>
									<font style="vertical-align: inherit;">通常，这是MySQL数据目录的全部或部分副本。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										物理备份方法比逻辑更快，因为它们只涉及文件复制而不进行转换。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										输出比逻辑备份更紧凑。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										由于备份速度和紧凑性对繁忙，重要的数据库很重要，因此MySQL Enterprise Backup产品可执行物理备份。</font>
									<font style="vertical-align: inherit;">有关MySQL Enterprise Backup产品的概述，请参见
									</font>
								</font><a class="xref" href="mysql-enterprise.html#mysql-enterprise-backup" title="30.2 MySQL企业备份概述">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">第30.2节“MySQL Enterprise Backup概述”</font>
									</font>
								</a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										备份和还原粒度范围从整个数据目录的级别到单个文件的级别。</font>
									<font style="vertical-align: inherit;">这可能会也可能不会提供表级粒度，具体取决于存储引擎。</font>
									<font style="vertical-align: inherit;">例如，
									</font>
								</font><code class="literal">InnoDB</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表可以分别位于单独的文件中，也可以与其他</font>
								</font><code class="literal">InnoDB</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表</font>
									<font style="vertical-align: inherit;">共享文件存储
									</font>
									<font style="vertical-align: inherit;">; </font>
									<font style="vertical-align: inherit;">每个
									</font>
								</font><code class="literal">MyISAM</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表唯一地对应于一组文件。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										除数据库外，备份还可以包括任何相关文件，如日志或配置文件。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										来自</font>
								</font><code class="literal">MEMORY</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表的</font>
									<font style="vertical-align: inherit;">数据</font>
									<font style="vertical-align: inherit;">很难以这种方式备份，因为它们的内容不存储在磁盘上。</font>
									<font style="vertical-align: inherit;">（MySQL Enterprise Backup产品具有可</font>
								</font><code class="literal">MEMORY</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">在备份期间</font>
									<font style="vertical-align: inherit;">从</font>
									<font style="vertical-align: inherit;">表中</font>
									<font style="vertical-align: inherit;">检索数据的功能</font>
									<font style="vertical-align: inherit;">。）
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										备份仅可移植到具有相同或类似硬件特征的其他计算机。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										可以在MySQL服务器未运行时执行备份。</font>
									<font style="vertical-align: inherit;">如果服务器正在运行，则必须执行适当的锁定，以便服务器在备份期间不会更改数据库内容。</font>
									<font style="vertical-align: inherit;">MySQL Enterprise Backup会自动为需要它的表执行此锁定。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										物理备份工具包括用于</font>
								</font><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">表</font>
										</font>
									</strong></span>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">的MySQL Enterprise Backup
									</font>
									<font style="vertical-align: inherit;">的
									</font><span class="command"><strong>
											<font style="vertical-align: inherit;">mysqlbackup</font>
										</strong></span>
								</font><code class="literal">InnoDB</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">或任何其他表，或文件系统级命令（如</font>
								</font><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">cp</font>
										</font>
									</strong></span>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">，
									</font>
								</font><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">scp</font>
										</font>
									</strong></span>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">，</font>
								</font><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">tar</font>
										</font>
									</strong></span>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">，
									</font>
								</font><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">rsync</font>
										</font>
									</strong></span>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">）</font>
								</font><code class="literal">MyISAM</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										恢复：
									</font>
								</font>
							</p>
							<div class="itemizedlist">
								<ul class="itemizedlist" style="list-style-type: circle; ">
									<li class="listitem">
										<p>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">
													MySQL Enterprise Backup还原</font>
											</font><code class="literal">InnoDB</code>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">
													以及它备份的其他表。
												</font>
											</font>
										</p>
									</li>
									<li class="listitem">
										<p>
											<a class="link" href="mysql-cluster.html#mysql-cluster-programs-ndb-restore" title="22.4.23 ndb_restore  - 恢复NDB群集备份"><span
												 class="command"><strong>
														<font style="vertical-align: inherit;">
															<font style="vertical-align: inherit;">ndb_restore</font>
														</font>
													</strong></span></a>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">恢复
												</font>
											</font><a class="link" href="mysql-cluster.html" title="第22章MySQL NDB Cluster 8.0"><code class="literal">NDB</code></a>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">表。
												</font>
											</font>
										</p>
									</li>
									<li class="listitem">
										<p>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">
													可以使用文件系统命令将在文件系统级别复制的文件复制回其原始位置。
												</font>
											</font>
										</p>
									</li>
								</ul>
							</div>
						</li>
					</ul>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							逻辑备份方法具有以下特征：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										通过查询MySQL服务器以获取数据库结构和内容信息来完成备份。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										备份比物理方法慢，因为服务器必须访问数据库信息并将其转换为逻辑格式。</font>
									<font style="vertical-align: inherit;">如果输出写在客户端，则服务器还必须将其发送到备份程序。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										输出大于物理备份，特别是以文本格式保存时。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										备份和还原粒度可在服务器级别（所有数据库），数据库级别（特定数据库中的所有表）或表级别中使用。</font>
									<font style="vertical-align: inherit;">无论存储引擎如何，都是如此。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										备份不包括日志或配置文件，或其他不属于数据库的数据库相关文件。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										以逻辑格式存储的备份与机器无关且具有高度可移植性。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										在运行MySQL服务器的情况下执行逻辑备份。</font>
									<font style="vertical-align: inherit;">服务器未脱机。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										逻辑备份工具包括</font>
								</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">mysqldump</font>
											</font>
										</strong></span></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										程序和</font>
								</font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code class="literal">SELECT
										... INTO OUTFILE</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">语句。</font>
									<font style="vertical-align: inherit;">这些适用于任何存储引擎，甚至</font>
								</font><code class="literal">MEMORY</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										要恢复逻辑备份，可以使用</font>
								</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">mysql</font>
											</font>
										</strong></span></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">客户端</font>
									<font style="vertical-align: inherit;">处理SQL格式转储文件</font>
									<font style="vertical-align: inherit;">。</font>
									<font style="vertical-align: inherit;">要加载分隔文本文件，请使用</font>
								</font><a class="link" href="sql-syntax.html#load-data" title="13.2.7 LOAD DATA语法"><code class="literal">LOAD
										DATA</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">语句或</font>
								</font><a class="link" href="programs.html#mysqlimport" title="4.5.5 mysqlimport  - 数据导入程序"><span class="command"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">mysqlimport</font>
											</font>
										</strong></span></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										客户端。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<h3><a name="idm140091710377600"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">在线与离线备份</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							在MySQL服务器运行时进行联机备份，以便可以从服务器获取数据库信息。</font>
						<font style="vertical-align: inherit;">服务器停止时会发生脱机备份。</font>
						<font style="vertical-align: inherit;">这种区别也可以描述为</font>
					</font><span class="quote">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">“ </font>
						</font><span class="quote">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">热</font>
							</font>
						</span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> ”</font>
						</font>
					</span>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">与
						</font>
					</font><span class="quote">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">“ </font>
						</font><span class="quote">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">冷</font>
							</font>
						</span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> ”</font>
						</font>
					</span>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">备份; </font>
						<font style="vertical-align: inherit;">一个</font>
					</font><span class="quote">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">“ </font>
						</font><span class="quote">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">温暖</font>
							</font>
						</span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> ”</font>
						</font>
					</span>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">的备份是一个在服务器保持运行，但锁定，以防止当你从外部访问数据库文件修改数据。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							在线备份方法具有以下特征：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										备份对其他客户端的干扰较小，其他客户端可以在备份期间连接到MySQL服务器，并且可以根据需要执行的操作来访问数据。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										必须小心施加适当的锁定，以便不会发生会损害备份完整性的数据修改。</font>
									<font style="vertical-align: inherit;">MySQL Enterprise Backup产品会自动执行此类锁定。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							脱机备份方法具有以下特征：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										客户端可能会受到不利影响，因为备份期间服务器不可用。</font>
									<font style="vertical-align: inherit;">因此，此类备份通常来自复制从属服务器，可以脱机而不会损害可用性。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										备份过程更简单，因为不会受到客户端活动的干扰。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							在线和离线之间的类似区别适用于恢复操作，并且适用类似的特征。</font>
						<font style="vertical-align: inherit;">但是，与在线备份相比，客户端更有可能受到在线恢复的影响，因为恢复需要更强的锁定。</font>
						<font style="vertical-align: inherit;">在备份期间，客户端可能能够在备份数据时读取数据。</font>
						<font style="vertical-align: inherit;">恢复修改数据而不仅仅是读取数据，因此必须防止客户端在恢复数据时访问数据。
						</font>
					</font>
				</p>
				<h3><a name="idm140091710368080"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">本地与远程备份</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							本地备份在运行MySQL服务器的同一主机上执行，而远程备份则从其他主机执行。</font>
						<font style="vertical-align: inherit;">对于某些类型的备份，即使输出是在服务器上本地写入的，也可以从远程主机启动备份。</font>
						<font style="vertical-align: inherit;">主办。
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">mysqldump</font>
											</font>
										</strong></span></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">可以连接到本地或远程服务器。</font>
									<font style="vertical-align: inherit;">对于SQL输出（</font>
								</font><code class="literal">CREATE</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">和
									</font>
								</font><a class="link" href="sql-syntax.html#insert" title="13.2.6 INSERT语法"><code class="literal">INSERT</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">语句），可以完成本地或远程转储并在客户端上生成输出。</font>
									<font style="vertical-align: inherit;">对于分隔文本输出（使用该
									</font>
								</font><a class="link" href="programs.html#option_mysqldump_tab"><code class="option">--tab</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">选项），将在服务器主机上创建数据文件。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<a class="link" href="sql-syntax.html#select-into" title="13.2.10.1 SELECT ... INTO语法"><code class="literal">SELECT
										... INTO
										OUTFILE</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;"> 可以从本地或远程客户端主机启动，但输出文件是在服务器主机上创建的。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										物理备份方法通常在MySQL服务器主机上本地启动，以便服务器可以脱机，但复制文件的目标可能是远程的。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<h3><a name="idm140091710358000"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">快照备份</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							某些文件系统实现可以执行</font>
					</font><span class="quote">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">“ </font>
						</font><span class="quote">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">快照</font>
							</font>
						</span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> ”</font>
						</font>
					</span>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							。</font>
						<font style="vertical-align: inherit;">它们在给定时间点提供文件系统的逻辑副本，而不需要整个文件系统的物理副本。</font>
						<font style="vertical-align: inherit;">（例如，实现可能使用写时复制技术，因此只需要复制快照时间之后修改的部分文件系统。）MySQL本身不提供获取文件系统快照的功能。</font>
						<font style="vertical-align: inherit;">它可通过Veritas，LVM或ZFS等第三方解决方案获得。
						</font>
					</font>
				</p>
				<h3><a name="idm140091710355920"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">完全与增量备份</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							完整备份包括MySQL服务器在给定时间点管理的所有数据。</font>
						<font style="vertical-align: inherit;">增量备份包括在给定时间跨度内（从一个时间点到另一个时间点）对数据所做的更改。</font>
						<font style="vertical-align: inherit;">MySQL有不同的方法来执行完整备份，例如本节前面所述的那些。</font>
						<font style="vertical-align: inherit;">通过启用服务器的二进制日志（服务器用于记录数据更改），可以实现增量备份。
						</font>
					</font>
				</p>
				<h3><a name="idm140091710354320"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">完全与时间点（增量）恢复</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							完全恢复可从完整备份中恢复所有数据。</font>
						<font style="vertical-align: inherit;">这会将服务器实例还原到备份时的状态。</font>
						<font style="vertical-align: inherit;">如果该状态不够充分，则可以在完全恢复之后恢复自完全备份以来所做的增量备份，以使服务器处于更新状态。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							增量恢复是恢复在给定时间跨度内所做的更改。</font>
						<font style="vertical-align: inherit;">这也称为时间点恢复，因为它使服务器的状态达到给定时间。</font>
						<font style="vertical-align: inherit;">时间点恢复基于二进制日志，通常在备份文件完全恢复之后，将备份文件还原到备份时的状态。</font>
						<font style="vertical-align: inherit;">然后，在二进制日志文件中写入的数据更改将作为增量恢复应用于重做数据修改，并使服务器达到所需的时间点。
						</font>
					</font>
				</p>
				<h3><a name="idm140091710351808"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表维护</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							如果表损坏，数据完整性可能会受到影响。</font>
						<font style="vertical-align: inherit;">对于
						</font>
					</font><a class="link" href="innodb-storage-engine.html" title="第15章InnoDB存储引擎"><code class="literal">InnoDB</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表格，这不是典型问题。</font>
					</font><a class="link" href="storage-engines.html#myisam-storage-engine" title="16.2 MyISAM存储引擎"><code class="literal">MyISAM</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							如果</font>
						<font style="vertical-align: inherit;">程序检查</font>
						<font style="vertical-align: inherit;">表并在发现问题时进行修复，请参见
						</font>
					</font><a class="xref" href="backup-and-recovery.html#myisam-table-maintenance" title="7.6 MyISAM表维护和崩溃恢复">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第7.6节“MyISAM表维护和崩溃恢复”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<h3><a name="idm140091710347328"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">备份调度，压缩和加密</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							备份计划对于自动化备份过程很有价值。</font>
						<font style="vertical-align: inherit;">压缩备份输出可减少空间需求，输出加密可提供更好的安全性，防止未经授权访问备份数据。</font>
						<font style="vertical-align: inherit;">MySQL本身不提供这些功能。</font>
						<font style="vertical-align: inherit;">MySQL Enterprise Backup产品可以压缩</font>
					</font><code class="literal">InnoDB</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">备份，并且可以使用文件系统实用程序实现备份输出的压缩或加密。</font>
						<font style="vertical-align: inherit;">可能还有其他第三方解决方案。
						</font>
					</font>
				</p>
			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="backup-methods"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">7.2数据库备份方法</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							本节总结了一些进行备份的常规方法。
						</font>
					</font>
				</p>
				<h3><a name="idm140091710343312"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">使用MySQL Enterprise Backup进行热备份</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							MySQL Enterprise Edition的客户可以使用
						</font>
					</font><a class="link" href="glossary.html#glos_mysql_enterprise_backup" title="MySQL企业备份">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">MySQL Enterprise Backup</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">产品对</font>
						<font style="vertical-align: inherit;">整个实例或选定的数据库，表或两者</font>
						<font style="vertical-align: inherit;">进行
						</font>
					</font><a class="link" href="glossary.html#glos_physical" title="物理">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">物理</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">备份。</font>
						<font style="vertical-align: inherit;">此产品包括
						</font>
					</font><a class="link" href="glossary.html#glos_incremental_backup" title="增量备份">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">增量</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">和
						</font>
					</font><a class="link" href="glossary.html#glos_compressed_backup" title="压缩备份">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">压缩</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">备份的功能。</font>
						<font style="vertical-align: inherit;">备份物理数据库文件使得恢复比</font>
					</font><code class="literal">mysqldump</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							命令</font>
						<font style="vertical-align: inherit;">等逻辑技术快得多</font>
						<font style="vertical-align: inherit;">。</font>
					</font><code class="literal">InnoDB</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">使用</font>
					</font><a class="link" href="glossary.html#glos_hot_backup" title="热备份">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">热备份</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">机制</font>
						<font style="vertical-align: inherit;">复制表
						</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">（理想情况下，</font>
					</font><code class="literal">InnoDB</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表应代表绝大部分数据。）使用</font><a class="link" href="glossary.html#glos_warm_backup"
						 title="热备份">
							<font style="vertical-align: inherit;">热备份</font>
						</a>
						<font style="vertical-align: inherit;">复制其他存储引擎的表</font>
					</font><a class="link" href="glossary.html#glos_warm_backup" title="热备份">
						<font style="vertical-align: inherit;"></font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">机制。</font>
						<font style="vertical-align: inherit;">有关MySQL Enterprise Backup产品的概述，请参见</font>
					</font><a class="xref" href="mysql-enterprise.html#mysql-enterprise-backup" title="30.2 MySQL企业备份概述">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第30.2节“MySQL Enterprise Backup概述”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<h3><a name="idm140091710332960"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">使用mysqldump进行备份</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqldump的</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">程序可以进行备份。</font>
						<font style="vertical-align: inherit;">它可以备份各种表。</font>
						<font style="vertical-align: inherit;">（请参见
						</font>
					</font><a class="xref" href="backup-and-recovery.html#using-mysqldump" title="7.4使用mysqldump进行备份">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第7.4节“使用mysqldump进行备份”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。）
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							对于</font>
					</font><code class="literal">InnoDB</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表，可以使用</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;">mysqldump</font>
								</strong></span></a>
					</font><a class="link" href="programs.html#option_mysqldump_single-transaction"><code class="option">--single-transaction</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">选项
						</font>
						<font style="vertical-align: inherit;">执行不对表进行锁定的联机备份
						</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">请参见</font><a class="xref" href="backup-and-recovery.html#backup-policy"
						 title="7.3.1建立备份策略">
							<font style="vertical-align: inherit;">第7.3.1节“建立备份策略”</font>
						</a>
						<font style="vertical-align: inherit;">。
						</font>
					</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
								<font style="vertical-align: inherit;"></font>
							</strong></span></a>
					<font style="vertical-align: inherit;"></font><a class="xref" href="backup-and-recovery.html#backup-policy" title="7.3.1建立备份策略">
						<font style="vertical-align: inherit;"></font>
					</a>
					<font style="vertical-align: inherit;"></font>
				</p>
				<h3><a name="idm140091710325552"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">通过复制表文件进行备份</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							可以通过复制表文件（</font>
					</font><code class="filename">*.MYD</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，</font>
					</font><code class="filename">*.MYI</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">文件和关联</font>
					</font><code class="filename">*.sdi</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">文件）</font>
						<font style="vertical-align: inherit;">来备份MyISAM表</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">要获得一致的备份，请停止服务器或锁定并刷新相关表：
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">带</font></font><em class="replaceable"><code>tbl_list</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">读锁的</font><font style="vertical-align: inherit;">冲洗表</font><font style="vertical-align: inherit;">;
</font></font></pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							你只需要一个读锁; </font>
						<font style="vertical-align: inherit;">这使得其他客户端可以在您复制数据库目录中的文件时继续查询表。</font>
						<font style="vertical-align: inherit;">需要刷新以确保在开始备份之前将所有活动索引页写入磁盘。</font>
						<font style="vertical-align: inherit;">请参见</font>
					</font><a class="xref" href="sql-syntax.html#lock-tables" title="13.3.6 LOCK TABLES和UNLOCK TABLES语法">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第13.3.6节“LOCK TABLES和UNLOCK TABLES语法”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">和
						</font>
					</font><a class="xref" href="sql-syntax.html#flush" title="13.7.7.3 FLUSH语法">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第13.7.7.3节“FLUSH语法”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							只要服务器没有更新任何内容，您也可以通过复制表文件来创建二进制备份。</font>
						<font style="vertical-align: inherit;">（但请注意，如果您的数据库包含</font>
					</font><code class="literal">InnoDB</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表</font>
						<font style="vertical-align: inherit;">，则表文件复制方法不起作用</font>
						<font style="vertical-align: inherit;">。此外，即使服务器未主动更新数据，</font>
					</font><code class="literal">InnoDB</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							仍可能已将修改后的数据缓存在内存中而不会刷新到磁盘。）
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							有关此备份方法的示例，请参阅</font>
					</font><a class="xref" href="sql-syntax.html#import-table" title="13.2.5 IMPORT TABLE语法">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第13.2.5节“IMPORT TABLE语法”中</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">的导出和导入示例</font>
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<h3><a name="idm140091710315184"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">制作分隔文本文件备份</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要创建包含表数据的文本文件，您可以使用
						</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">该文件是在MySQL服务器主机上创建的，而不是在客户端主机上创建的。</font>
						<font style="vertical-align: inherit;">对于此语句，输出文件不能存在，因为允许覆盖文件会构成安全风险。</font>
						<font style="vertical-align: inherit;">请参见
						</font><a class="xref" href="sql-syntax.html#select" title="13.2.10 SELECT语法">
							<font style="vertical-align: inherit;">第13.2.10节“SELECT语法”</font>
						</a>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">此方法适用于任何类型的数据文件，但仅保存表数据，而不保存表结构。
						</font>
					</font><a class="link" href="sql-syntax.html#select-into" title="13.2.10.1 SELECT ... INTO语法"><code class="literal">SELECT
							* INTO OUTFILE
							'<em class="replaceable"><code>file_name</code></em>' FROM
							<em class="replaceable"><code>tbl_name</code></em></code></a>
					<font style="vertical-align: inherit;"></font><a class="xref" href="sql-syntax.html#select" title="13.2.10 SELECT语法">
						<font style="vertical-align: inherit;"></font>
					</a>
					<font style="vertical-align: inherit;"></font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							创建文本数据文件的另一种方法（以及包含</font>
					</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">备份表的语句的</font>
						<font style="vertical-align: inherit;">文件
						</font>
						<font style="vertical-align: inherit;">）是使用</font>
					</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqldump</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">和该
						</font>
					</font><a class="link" href="programs.html#option_mysqldump_tab"><code class="option">--tab</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">选项。</font>
						<font style="vertical-align: inherit;">请参见
						</font>
					</font><a class="xref" href="backup-and-recovery.html#mysqldump-delimited-text" title="7.4.3使用mysqldump以分隔文本格式转储数据">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第7.4.3节“使用mysqldump以分隔文本格式转储数据”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要重新加载分隔文本数据文件，请使用
						</font>
					</font><a class="link" href="sql-syntax.html#load-data" title="13.2.7 LOAD DATA语法"><code class="literal">LOAD DATA</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">或
						</font>
					</font><a class="link" href="programs.html#mysqlimport" title="4.5.5 mysqlimport  - 数据导入程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqlimport</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<h3><a name="idm140091710303296"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">通过启用二进制日志进行增量备份</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							MySQL支持增量备份：必须使用</font>
					</font><a class="link" href="replication.html#option_mysqld_log-bin"><code class="option">--log-bin</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">启用二进制日志记录</font>
						<font style="vertical-align: inherit;">的</font>
						<font style="vertical-align: inherit;">选项</font>
						<font style="vertical-align: inherit;">启动服务器</font>
						<font style="vertical-align: inherit;">; </font>
						<font style="vertical-align: inherit;">请参见</font>
					</font><a class="xref" href="server-administration.html#binary-log" title="5.4.4二进制日志">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第5.4.4节“二进制日志”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">二进制日志文件为您提供了在执行备份之后复制数据库所需的信息。</font>
						<font style="vertical-align: inherit;">目前，您要进行增量备份（包含自上次完全备份或增量备份以来发生的所有更改），您应该使用旋转二进制日志</font>
					</font><a class="link" href="sql-syntax.html#flush-logs"><code class="literal">FLUSH LOGS</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">完成此操作后，您需要将所有二进制日志复制到备份位置，这些日志的范围从上次完全备份或增量备份到最后一个备份之一。</font>
						<font style="vertical-align: inherit;">这些二进制日志是增量备份; </font>
						<font style="vertical-align: inherit;">在还原时，按照</font>
					</font><a class="xref" href="backup-and-recovery.html#point-in-time-recovery" title="7.5使用二进制日志进行时间点（增量）恢复">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第7.5节“使用二进制日志进行时间点（增量）恢复”中的</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">说明应用它们
						</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">下次执行完整备份时，还应使用</font>
					</font><a class="link" href="sql-syntax.html#flush-logs"><code class="literal">FLUSH LOGS</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">或</font>
					</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqldump --flush-logs</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">旋转二进制
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4&nbsp;mysqldump — A Database Backup Program"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;">日志</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">请参见</font>
					</font><a class="xref" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第4.5.4节“ </font>
						</font><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqldump</font>
								</font>
							</strong></span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> - 数据库备份程序”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<h3><a name="idm140091710294624"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">使用复制从站进行备份</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							如果在进行备份时主服务器出现性能问题，可以帮助的一种策略是在从服务器上而不是在主服务器上设置复制和执行备份。</font>
						<font style="vertical-align: inherit;">请参见</font>
					</font><a class="xref" href="replication.html#replication-solutions-backups" title="17.3.1使用复制备份">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第17.3.1节“使用备份复制”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							如果要备份从属复制服务器，则在备份从属数据库时，应备份其主信息和中继日志信息存储库（请参见
						</font>
					</font><a class="xref" href="replication.html#slave-logs" title="17.2.4复制中继和状态日志">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第17.2.4节“复制中继和状态日志”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">），无论备份方法如何你选。</font>
						<font style="vertical-align: inherit;">恢复从属数据后，始终需要此信息才能恢复复制。</font>
						<font style="vertical-align: inherit;">如果您的slave正在复制
						</font>
					</font><a class="link" href="sql-syntax.html#load-data" title="13.2.7 LOAD DATA语法"><code class="literal">LOAD DATA</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">语句，则还应备份</font>
					</font><code class="filename">SQL_LOAD-*</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">slave用于此目的的目录中存在的</font>
						<font style="vertical-align: inherit;">所有</font>
						<font style="vertical-align: inherit;">文件。</font>
						<font style="vertical-align: inherit;">从站需要这些文件才能恢复任何中断</font>
					</font><a class="link" href="sql-syntax.html#load-data" title="13.2.7 LOAD DATA语法"><code class="literal">LOAD DATA</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">操作的</font>
						<font style="vertical-align: inherit;">复制
						</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">该目录的位置是。的值
						</font>
					</font><a class="link" href="replication.html#option_mysqld_slave-load-tmpdir"><code class="option">--slave-load-tmpdir</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">选项。</font>
						<font style="vertical-align: inherit;">如果未使用该选项启动服务器，则目录位置是</font>
					</font><a class="link" href="server-administration.html#sysvar_tmpdir"><code class="literal">tmpdir</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">系统变量</font>
						<font style="vertical-align: inherit;">的值</font>
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<h3><a name="idm140091710285216"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">恢复损坏的表</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							如果必须还原</font>
					</font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">已损坏的表，请先尝试使用</font>
					</font><a class="link" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法"><code class="literal">REPAIR
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">或</font>
					</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisamchk -r</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">恢复它们
						</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">这应该在99.9％的情况下有效。</font>
						<font style="vertical-align: inherit;">如果
						</font>
					</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisamchk</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">失败，请参见
						</font>
					</font><a class="xref" href="backup-and-recovery.html#myisam-table-maintenance" title="7.6 MyISAM表维护和崩溃恢复">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第7.6节“MyISAM表维护和崩溃恢复”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<h3><a name="idm140091710278784"></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">使用文件系统快照进行备份</font>
					</font>
				</h3>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							如果您使用的是Veritas文件系统，则可以进行如下备份：
						</font>
					</font>
				</p>
				<div class="orderedlist">
					<ol class="orderedlist" type="1">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										从客户端程序执行</font>
								</font><a class="link" href="sql-syntax.html#flush-tables-with-read-lock"><code class="literal">FLUSH
										TABLES WITH READ LOCK</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										从另一个shell执行</font>
								</font><code class="literal">mount vxfs
									snapshot</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										从第一个客户端执行
									</font>
								</font><a class="link" href="sql-syntax.html#lock-tables" title="13.3.6 LOCK TABLES和UNLOCK TABLES语法"><code
									 class="literal">UNLOCK
										TABLES</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										从快照复制文件。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										卸载快照。
									</font>
								</font>
							</p>
						</li>
					</ol>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							类似的快照功能可能在其他文件系统中可用，例如LVM或ZFS。
						</font>
					</font>
				</p>
			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="backup-strategy-example"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">7.3备份和恢复策略示例</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<div class="toc">
					<dl class="toc"><dt><span class="section"><a href="backup-and-recovery.html#backup-policy">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.3.1建立备份策略</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#recovery-from-backups">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.3.2使用备份进行恢复</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#backup-strategy-summary">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.3.3备份策略摘要</font>
									</font>
								</a></span></dt></dl>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							本节讨论执行备份的过程，使您可以在几种类型的崩溃后恢复数据：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										操作系统崩溃
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										电源（检测）失败
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										文件系统崩溃
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										硬件问题（硬盘驱动器，主板等）
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该示例命令不包括诸如
						</font>
					</font><a class="link" href="programs.html#option_general_user"><code class="option">--user</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">和
						</font>
					</font><a class="link" href="programs.html#option_general_password"><code class="option">--password</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">针对
						</font>
					</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">的mysqldump</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">和</font>
					</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">MySQL的</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">客户端程序。</font>
						<font style="vertical-align: inherit;">您应该包含必要的选项以使客户端程序能够连接到MySQL服务器。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							假设数据存储在</font>
					</font><code class="literal">InnoDB</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							存储引擎中，该引擎支持事务和自动崩溃恢复。</font>
						<font style="vertical-align: inherit;">还假设MySQL服务器在崩溃时处于负载状态。</font>
						<font style="vertical-align: inherit;">如果不是，则不需要恢复。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							对于操作系统崩溃或电源故障的情况，我们可以假设重启后MySQL的磁盘数据可用。</font>
						<font style="vertical-align: inherit;">该
						</font>
					</font><code class="literal">InnoDB</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">数据文件可能不包含由于崩溃一致的数据，但</font>
					</font><code class="literal">InnoDB</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">读取它的日志，并在其中发现挂起还没有被刷新到数据文件的提交和未提交的事务清单。</font>
					</font><code class="literal">InnoDB</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">自动回滚那些未提交的事务，并刷新其已提交的数据文件。</font>
						<font style="vertical-align: inherit;">有关此恢复过程的信息将通过MySQL错误日志传达给用户。</font>
						<font style="vertical-align: inherit;">以下是示例日志摘录：
						</font>
					</font>
				</p>
				<pre data-lang="simple" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">InnoDB：数据库没有正常关闭。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：从日志文件开始恢复......</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：根据检查点启动日志扫描</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：日志序列号0 13674004</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：执行恢复：扫描到日志序列号0 13739520</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：执行恢复：扫描到日志序列号0 13805056</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：执行恢复：扫描到日志序列号0 13870592</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：执行恢复：扫描到日志序列号0 13936128</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
...</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：执行恢复：扫描到日志序列号0 20555264</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：执行恢复：扫描到日志序列号0 20620800</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：执行恢复：扫描到日志序列号0 20664692</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：1个未提交的事务，必须回滚</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：开始回滚未提交的事务</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：回滚trx no 16745</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：回滚trx no 16745完成</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：完成了未提交事务的回滚</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：启动一批日志记录到数据库......</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：申请批量完成</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
InnoDB：开始了</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
mysqld：准备连接</font></font><font></font>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							对于文件系统崩溃或硬件问题的情况，我们可以假设</font>
						<font style="vertical-align: inherit;">
							重启后</font>
						<font style="vertical-align: inherit;">MySQL磁盘数据</font>
					</font><span class="emphasis"><em>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">不可</font>
							</font>
						</em></span>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">用。</font>
						<font style="vertical-align: inherit;">这意味着MySQL无法成功启动，因为某些磁盘数据块不再可读。</font>
						<font style="vertical-align: inherit;">在这种情况下，有必要重新格式化磁盘，安装新磁盘或以其他方式纠正基础问题。</font>
						<font style="vertical-align: inherit;">然后有必要从备份中恢复MySQL数据，这意味着必须已经进行备份。</font>
						<font style="vertical-align: inherit;">为了确保这种情况，请设计并实施备份策略。
						</font>
					</font>
				</p>
				<div class="section">

					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="backup-policy"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.3.1建立备份策略</font>
									</font>
								</h3>
							</div>
						</div>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								为了有用，必须定期安排备份。</font>
							<font style="vertical-align: inherit;">可以使用多种工具在MySQL中完成完整备份（某个时间点的数据快照）。</font>
							<font style="vertical-align: inherit;">例如，
							</font>
						</font><a class="link" href="mysql-enterprise.html#mysql-enterprise-backup" title="30.2 MySQL企业备份概述">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">MySQL Enterprise Backup</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">可以执行</font>
							<font style="vertical-align: inherit;">整个实例</font>
							<font style="vertical-align: inherit;">的
							</font>
						</font><a class="link" href="glossary.html#glos_physical_backup" title="物理备份">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">物理备份</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，通过优化来最小化开销并避免在备份</font>
						</font><code class="literal">InnoDB</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">数据文件</font>
							<font style="vertical-align: inherit;">时中断</font>
							<font style="vertical-align: inherit;">; </font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">提供在线
							</font>
						</font><a class="link" href="glossary.html#glos_logical_backup" title="逻辑备份">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">逻辑备份</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">本讨论使用</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								假设我们</font>
						</font><code class="literal">InnoDB</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">在周日下午1点使用以下命令对所有数据库中</font>
							<font style="vertical-align: inherit;">的所有</font>
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">进行完整备份
							</font>
							<font style="vertical-align: inherit;">，当负载较低时：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump --all-databases --master-data --single-transaction &gt; backup_sunday_1_PM.sql</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;"><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span
								 class="command"><strong>
										<font style="vertical-align: inherit;">mysqldump</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								生成的结果</font>
						</font><code class="filename">.sql</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件
							</font>
							<font style="vertical-align: inherit;">包含一组SQL
							</font>
							<font style="vertical-align: inherit;">语句，可用于稍后重新加载转储的表。
							</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font><a class="link" href="sql-syntax.html#insert" title="13.2.6 INSERT语法"><code
							 class="literal">INSERT</code></a>
						<font style="vertical-align: inherit;"></font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								此备份操作在转储开始时（使用</font>
						</font><a class="link" href="sql-syntax.html#flush-tables-with-read-lock"><code class="literal">FLUSH
								TABLES WITH READ LOCK</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">）</font>
							<font style="vertical-align: inherit;">获取所有表的全局读锁定</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">获取此锁定后，将读取二进制日志坐标并释放锁定。</font>
							<font style="vertical-align: inherit;">如果在</font>
						</font><a class="link" href="sql-syntax.html#flush" title="13.7.7.3 FLUSH语法"><code class="literal">FLUSH</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">发出</font>
							<font style="vertical-align: inherit;">语句时正在运行长更新语句
							</font>
							<font style="vertical-align: inherit;">，则备份操作可能会停止，直到这些语句完成。</font>
							<font style="vertical-align: inherit;">之后，转储变得无锁，并且不会干扰表上的读取和写入。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								之前假设要备份的表是
							</font>
						</font><code class="literal">InnoDB</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表，因此
							</font>
						</font><a class="link" href="programs.html#option_mysqldump_single-transaction"><code class="option">--single-transaction</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">使用一致的读取并保证</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">看到的数据
							</font>
							<font style="vertical-align: inherit;">不会更改。</font>
							<font style="vertical-align: inherit;">（</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span
								 class="command"><strong>
										<font style="vertical-align: inherit;">mysqldump</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">进程</font>
						</font><code class="literal">InnoDB</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">看不到</font>
							<font style="vertical-align: inherit;">其他客户端对</font>
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">所做的更改</font>
							<font style="vertical-align: inherit;">。）如果备份操作包括非事务性表，则一致性要求它们在备份期间不会更改。</font>
							<font style="vertical-align: inherit;">例如，对于</font>
							<font style="vertical-align: inherit;">
								数据库中</font>
							<font style="vertical-align: inherit;">的
							</font>
							<font style="vertical-align: inherit;">表，</font>
							<font style="vertical-align: inherit;">备份期间不得对MySQL帐户进行任何管理更改。
							</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;"></font><code class="literal">mysql</code>
						<font style="vertical-align: inherit;"></font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								完整备份是必要的，但创建它们并不总是方便。</font>
							<font style="vertical-align: inherit;">它们生成大型备份文件并花费时间生成。</font>
							<font style="vertical-align: inherit;">它们并不是最佳的，因为每个连续的完整备份都包含所有数据，即使是自上次完全备份以来未发生更改的部分。</font>
							<font style="vertical-align: inherit;">进行初始完整备份然后进行增量备份更有效。</font>
							<font style="vertical-align: inherit;">增量备份更小，生成时间更短。</font>
							<font style="vertical-align: inherit;">权衡是，在恢复时，只能通过重新加载完整备份来恢复数据。</font>
							<font style="vertical-align: inherit;">您还必须处理增量备份以恢复增量更改。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要进行增量备份，我们需要保存增量更改。</font>
							<font style="vertical-align: inherit;">在MySQL中，这些更改在二进制日志中表示，因此应始终使用</font>
						</font><a class="link" href="replication.html#option_mysqld_log-bin"><code class="option">--log-bin</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">启用该日志</font>
							<font style="vertical-align: inherit;">的</font>
							<font style="vertical-align: inherit;">选项</font>
							<font style="vertical-align: inherit;">启动MySQL服务器
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">启用二进制日志记录后，服务器会在更新数据时将每个数据更改写入文件。</font>
							<font style="vertical-align: inherit;">查看使用该</font>
						</font><a class="link" href="replication.html#option_mysqld_log-bin"><code class="option">--log-bin</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">选项</font>
							<font style="vertical-align: inherit;">启动</font>
							<font style="vertical-align: inherit;">并且已运行了几天</font>
							<font style="vertical-align: inherit;">的MySQL服务器的数据目录
							</font>
							<font style="vertical-align: inherit;">，我们找到这些MySQL二进制日志文件：
							</font>
						</font>
					</p>
					<pre data-lang="simple" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">-rw-rw ---- 1 guilhem guilhem 1277324 11月10日23:59 gbichot2-bin.000001</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
-rw-rw ---- 1 guilhem guilhem 4月10日23:59 gbichot2-bin.000002</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
-rw-rw ---- 1 guilhem guilhem 79 Nov 11 11:06 gbichot2-bin.000003</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
-rw-rw ---- 1 guilhem guilhem 508 Nov 11 11:08 gbichot2-bin.000004</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
-rw-rw ---- 1 guilhem guilhem 220047446 11月12日16:47 gbichot2-bin.000005</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
-rw-rw ---- 1 guilhem guilhem 998412 11月14日10:08 gbichot2-bin.000006</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
-rw-rw ---- 1 guilhem guilhem 361 Nov 14 10:07 gbichot2-bin.index</font></font><font></font>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								每次重新启动时，MySQL服务器都会使用序列中的下一个数字创建一个新的二进制日志文件。</font>
							<font style="vertical-align: inherit;">在服务器运行时，您还可以通过发出</font>
						</font><a class="link" href="sql-syntax.html#flush-logs"><code class="literal">FLUSH LOGS</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">SQL语句或使用</font>
						</font><a class="link" href="programs.html#mysqladmin" title="4.5.2 mysqladmin  - 管理MySQL服务器的客户端"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqladmin flush-logs</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">命令</font>
							<font style="vertical-align: inherit;">告诉它关闭当前的二进制日志文件并手动开始新的日志文件
							</font>
							<font style="vertical-align: inherit;">。
							</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">还有一个刷新日志的选项。</font>
							<font style="vertical-align: inherit;">该</font>
						</font><code class="literal">.index</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">数据目录文件中包含该目录下所有MySQL二进制日志的清单。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								MySQL二进制日志对于恢复非常重要，因为它们构成了一组增量备份。</font>
							<font style="vertical-align: inherit;">如果确保在进行完全备份时刷新日志，则之后创建的二进制日志文件将包含自备份以来所做的所有数据更改。</font>
							<font style="vertical-align: inherit;">让我们</font>
							<font style="vertical-align: inherit;">
								稍微</font>
							<font style="vertical-align: inherit;">修改之前的</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">命令，以便在完全备份时冲洗MySQL二进制日志，以便转储文件包含新的当前二进制日志的名称：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump --single-transaction --flush-logs --master-data=2 \</code></strong>
         <strong class="userinput"><code>--all-databases &gt; backup_sunday_1_PM.sql</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								执行此命令后，数据目录包含新的二进制日志文件</font>
						</font><code class="filename">gbichot2-bin.000007</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，因为该</font>
						</font><a class="link" href="programs.html#option_mysqldump_flush-logs"><code class="option">--flush-logs</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								选项会导致服务器刷新其日志。</font>
							<font style="vertical-align: inherit;">该
							</font>
						</font><a class="link" href="programs.html#option_mysqldump_master-data"><code class="option">--master-data</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">选项导致
							</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">将二进制日志信息写入其输出，因此生成的</font>
						</font><code class="filename">.sql</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">转储文件包括以下行：
							</font>
						</font>
					</p>
					<pre data-lang="simple" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">- 从中​​开始复制或时间点恢复的位置</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
-  CHANGE MASTER TO MASTER_LOG_FILE ='gbichot2-bin.000007'，MASTER_LOG_POS = 4;</font></font><font></font>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								因为</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">命令进行了完整备份，所以这些行意味着两件事：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											转储文件包含在写入</font>
									</font><code class="filename">gbichot2-bin.000007</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											二进制日志文件或更高版本的</font>
										<font style="vertical-align: inherit;">任何更改之前所做的所有更改</font>
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											备份后记录的所有数据更改都不存在于转储文件中，但存在于
										</font>
									</font><code class="filename">gbichot2-bin.000007</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">二进制日志文件或更高版本中。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								在星期一下午1点，我们可以通过刷新日志来开始新的二进制日志文件来创建增量备份。</font>
							<font style="vertical-align: inherit;">例如，执行</font>
						</font><a class="link" href="programs.html#mysqladmin" title="4.5.2 mysqladmin  - 管理MySQL服务器的客户端"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqladmin flush-logs</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">命令会创建</font>
						</font><code class="filename">gbichot2-bin.000008</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">周日下午1点完整备份和周一下午1点之间的所有更改都将在</font>
						</font><code class="filename">gbichot2-bin.000007</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件中。</font>
							<font style="vertical-align: inherit;">此增量备份很重要，因此最好将其复制到安全的地方。</font>
							<font style="vertical-align: inherit;">（例如，将其备份到磁带或DVD上，或将其复制到另一台计算机上。）在星期二下午1点，执行另一个</font>
						</font><a class="link" href="programs.html#mysqladmin" title="4.5.2 mysqladmin  - 管理MySQL服务器的客户端"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqladmin flush-logs</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">命令。</font>
							<font style="vertical-align: inherit;">周一下午1点到周二下午1点之间的所有更改都将在
							</font>
						</font><code class="filename">gbichot2-bin.000008</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件中（也应该在安全的地方复制）。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								MySQL二进制日志占用磁盘空间。</font>
							<font style="vertical-align: inherit;">为了腾出空间，不时清除它们。</font>
							<font style="vertical-align: inherit;">一种方法是删除不再需要的二进制日志，例如当我们进行完整备份时：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump --single-transaction --flush-logs --master-data=2 \</code></strong>
         <strong class="userinput"><code>--all-databases --delete-master-logs &gt; backup_sunday_1_PM.sql</code></strong>
</pre>
					<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">

						<div class="admon-title">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									注意
								</font>
							</font>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">如果您的服务器是复制主服务器，则</font>
								<font style="vertical-align: inherit;">
									使用</font>
							</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">mysqldump --delete-master-logs</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">删除MySQL二进制日志</font>
								<font style="vertical-align: inherit;">可能会很危险，因为从服务器可能尚未完全处理二进制日志的内容。</font>
								<font style="vertical-align: inherit;">该</font>
							</font><a class="link" href="sql-syntax.html#purge-binary-logs" title="13.4.1.1 PURGE BINARY LOGS语法"><code class="literal">PURGE
									BINARY
									LOGS</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">语句</font>
								<font style="vertical-align: inherit;">的描述</font>
								<font style="vertical-align: inherit;">说明了在删除MySQL二进制日志之前应该验证的内容。</font>
								<font style="vertical-align: inherit;">请参见
								</font>
							</font><a class="xref" href="sql-syntax.html#purge-binary-logs" title="13.4.1.1 PURGE BINARY LOGS语法">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第13.4.1.1节“PURGE BINARY LOGS语法”</font>
								</font>
							</a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
					</div>

				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="recovery-from-backups"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.3.2使用备份进行恢复</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								现在，假设我们在星期三上午8点发生了灾难性的崩溃，需要从备份中恢复。</font>
							<font style="vertical-align: inherit;">要恢复，首先我们恢复上一次完整备份（从星期日下午1点开始）。</font>
							<font style="vertical-align: inherit;">完整备份文件只是一组SQL语句，因此恢复它非常简单：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysql &lt; backup_sunday_1_PM.sql</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								此时，数据将恢复到截至周日下午1点的状态。</font>
							<font style="vertical-align: inherit;">要恢复自那时以来所做的更改，我们必须使用增量备份; </font>
							<font style="vertical-align: inherit;">也就是
							</font>
						</font><code class="filename">gbichot2-bin.000007</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">和
							</font>
						</font><code class="filename">gbichot2-bin.000008</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">二进制日志文件。</font>
							<font style="vertical-align: inherit;">必要时从备份位置获取文件，然后按如下方式处理其内容：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqlbinlog gbichot2-bin.000007 gbichot2-bin.000008 | mysql</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								我们现在已经将数据恢复到周二下午1点的状态，但仍然缺少从该日期到崩溃日期的更改。</font>
							<font style="vertical-align: inherit;">为了不丢失它们，我们需要让MySQL服务器将其MySQL二进制日志存储到与存储其数据文件的地方不同的安全位置（RAID磁盘，SAN，...），以便这些日志不会在被破坏的磁盘上。</font>
							<font style="vertical-align: inherit;">（也就是说，我们可以使用一个</font>
						</font><a class="link" href="replication.html#option_mysqld_log-bin"><code class="option">--log-bin</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">选项</font>
							<font style="vertical-align: inherit;">来启动服务器，该
							</font>
							<font style="vertical-align: inherit;">选项指定与数据目录所在的物理设备不同的物理设备上的位置。这样，即使包含该目录的设备丢失，日志也是安全的。）如果我们做到了这一点，我们会有</font>
						</font><code class="filename">gbichot2-bin.000009</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								手头的文件（以及任何后续文件），我们可以使用</font>
						</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqlbinlog</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">和
							</font>
						</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysql</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">来</font>
							<font style="vertical-align: inherit;">应用它们</font>
							<font style="vertical-align: inherit;">来恢复最新的数据更改，直到崩溃时都没有损失：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqlbinlog gbichot2-bin.000009 ... | mysql</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								有关使用</font>
						</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqlbinlog</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								处理二进制日志文件的</font>
							<font style="vertical-align: inherit;">更多信息</font>
							<font style="vertical-align: inherit;">，请参见
							</font>
						</font><a class="xref" href="backup-and-recovery.html#point-in-time-recovery" title="7.5使用二进制日志进行时间点（增量）恢复">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第7.5节“使用二进制日志进行时间点（增量）恢复”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="backup-strategy-summary"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.3.3备份策略摘要</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果操作系统崩溃或电源故障，
							</font>
						</font><code class="literal">InnoDB</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">它本身会完成恢复数据的所有工作。</font>
							<font style="vertical-align: inherit;">但为了确保您能够安然入睡，请遵守以下准则：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											始终使用</font>
									</font><a class="link" href="replication.html#option_mysqld_log-bin"><code class="option">--log-bin</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">选项</font>
										<font style="vertical-align: inherit;">运行MySQL服务器
										</font>
										<font style="vertical-align: inherit;">，甚至
										</font>
										<font style="vertical-align: inherit;">是日志文件名位于与数据目录所在驱动器不同的某些安全介质上的位置。</font>
										<font style="vertical-align: inherit;">如果您有这样的安全介质，这种技术也可以有利于磁盘负载平衡（从而提高性能）。
										</font>
									</font><a class="link" href="replication.html#option_mysqld_log-bin"><code class="option">--log-bin=<em class="replaceable"><code>log_name</code></em></code></a>
									<font style="vertical-align: inherit;"></font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											使用</font>
										<font style="vertical-align: inherit;">前面</font><a class="xref" href="backup-and-recovery.html#backup-policy"
										 title="7.3.1建立备份策略">
											<font style="vertical-align: inherit;">第7.3.1节“建立备份策略”中</font>
										</a>
										<font style="vertical-align: inherit;">显示</font>
										<font style="vertical-align: inherit;">的</font>
									</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">mysqldump</font>
												</font>
											</strong></span></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">命令</font>
										<font style="vertical-align: inherit;">进行定期完整备份，该
										</font>
										<font style="vertical-align: inherit;">命令
										</font>
										<font style="vertical-align: inherit;">可以进行在线非阻塞备份。
										</font>
									</font><a class="xref" href="backup-and-recovery.html#backup-policy" title="7.3.1建立备份策略">
										<font style="vertical-align: inherit;"></font>
									</a>
									<font style="vertical-align: inherit;"></font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											通过使用</font>
									</font><a class="link" href="sql-syntax.html#flush-logs"><code class="literal">FLUSH LOGS</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">或
										</font>
									</font><a class="link" href="programs.html#mysqladmin" title="4.5.2 mysqladmin  - 管理MySQL服务器的客户端"><span class="command"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">mysqladmin flush-logs刷新日志来</font>
												</font>
											</strong></span></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">定期进行增量备份
										</font>
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>

				</div>

			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="using-mysqldump"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">7.4使用mysqldump进行备份</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<div class="toc">
					<dl class="toc"><dt><span class="section"><a href="backup-and-recovery.html#mysqldump-sql-format">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.4.1使用mysqldump以SQL格式转储数据</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#reloading-sql-format-dumps">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.4.2重新加载SQL格式备份</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#mysqldump-delimited-text">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.4.3使用mysqldump以分隔文本格式转储数据</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#reloading-delimited-text-dumps">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.4.4重新加载分隔文本格式备份</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#mysqldump-tips">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.4.5 mysqldump提示</font>
									</font>
								</a></span></dt></dl>
				</div>
				<a class="indexterm" name="idm140091710154176"></a><a class="indexterm" name="idm140091710152720"></a>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							本节介绍如何使用</font>
					</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqldump</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">生成转储文件，以及如何重新加载转储文件。</font>
						<font style="vertical-align: inherit;">转储文件可以通过多种方式使用：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										作为备份，在数据丢失的情况下启用数据恢复。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										作为设置复制从属的数据源。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										作为实验数据的来源：
									</font>
								</font>
							</p>
							<div class="itemizedlist">
								<ul class="itemizedlist" style="list-style-type: circle; ">
									<li class="listitem">
										<p>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">
													制作可以在不更改原始数据的情况下使用的数据库副本。
												</font>
											</font>
										</p>
									</li>
									<li class="listitem">
										<p>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">
													测试潜在的升级不兼容性。
												</font>
											</font>
										</p>
									</li>
								</ul>
							</div>
						</li>
					</ul>
				</div>
				<p>
					<a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqldump</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">产生两种类型的输出，具体取决于是否</font>
					</font><a class="link" href="programs.html#option_mysqldump_tab"><code class="option">--tab</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							给出</font>
						<font style="vertical-align: inherit;">了</font>
						<font style="vertical-align: inherit;">选项：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										没有</font>
								</font><a class="link" href="programs.html#option_mysqldump_tab"><code class="option">--tab</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">，
									</font>
								</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">mysqldump</font>
											</font>
										</strong></span></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">将SQL语句写入标准输出。</font>
									<font style="vertical-align: inherit;">此输出包含
									</font>
								</font><code class="literal">CREATE</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">用于创建转储对象（数据库，表，存储例程等）的</font>
								</font><code class="literal">INSERT</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">语句</font>
									<font style="vertical-align: inherit;">，以及
									</font>
									<font style="vertical-align: inherit;">用于将数据加载到表中的语句。</font>
									<font style="vertical-align: inherit;">输出可以保存在文件中，稍后使用</font>
								</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">mysql</font>
											</font>
										</strong></span></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">重新</font>
									<font style="vertical-align: inherit;">加载
									</font>
									<font style="vertical-align: inherit;">以重新创建转储的对象。</font>
									<font style="vertical-align: inherit;">选项可用于修改SQL语句的格式，以及控制转储哪些对象。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										使用</font>
								</font><a class="link" href="programs.html#option_mysqldump_tab"><code class="option">--tab</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">，
									</font>
								</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">mysqldump</font>
											</font>
										</strong></span></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">为每个转储表生成两个输出文件。</font>
									<font style="vertical-align: inherit;">服务器将一个文件写为制表符分隔的文本，每个表行一行。</font>
									<font style="vertical-align: inherit;">此文件</font>
								</font><code class="filename"><em class="replaceable"><code>tbl_name</code></em>.txt</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										在输出目录中</font>
									<font style="vertical-align: inherit;">命名
									</font>
									<font style="vertical-align: inherit;">。</font>
									<font style="vertical-align: inherit;">服务器还将</font>
								</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
										TABLE</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表</font>
									<font style="vertical-align: inherit;">的</font>
									<font style="vertical-align: inherit;">语句</font>
									<font style="vertical-align: inherit;">发送
									</font>
									<font style="vertical-align: inherit;">到</font>
								</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">mysqldump</font>
											</font>
										</strong></span></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">，</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span
										 class="command"><strong>
												<font style="vertical-align: inherit;">mysqldump</font>
											</strong></span></a>
									<font style="vertical-align: inherit;">将其写为</font>
								</font><code class="filename"><em class="replaceable"><code>tbl_name</code></em>.sql</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										输出目录中</font>
									<font style="vertical-align: inherit;">指定的文件
									</font>
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="mysqldump-sql-format"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.4.1使用mysqldump以SQL格式转储数据</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								本节介绍如何使用</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								创建SQL格式转储文件。</font>
							<font style="vertical-align: inherit;">有关重新加载此类转储文件的信息，请参见
							</font>
						</font><a class="xref" href="backup-and-recovery.html#reloading-sql-format-dumps" title="7.4.2重新加载SQL格式备份">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第7.4.2节“重新加载SQL格式备份”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								默认情况下，</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">将信息作为SQL语句写入标准输出。</font>
							<font style="vertical-align: inherit;">您可以将输出保存在文件中：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump [<em class="replaceable"><code>arguments</code></em>] &gt; <em class="replaceable"><code>file_name</code></em></code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要转储所有数据库，请</font>
							<font style="vertical-align: inherit;">使用以下</font>
							<font style="vertical-align: inherit;">选项</font>
							<font style="vertical-align: inherit;">调用</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font><a class="link" href="programs.html#option_mysqldump_all-databases"><code
							 class="option">--all-databases</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump --all-databases &gt; dump.sql</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要仅转储特定数据库，请在命令行中为它们命名并使用以下</font>
						</font><a class="link" href="programs.html#option_mysqldump_databases"><code class="option">--databases</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								选项：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump --databases db1 db2 db3 &gt; dump.sql</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								该</font>
						</font><a class="link" href="programs.html#option_mysqldump_databases"><code class="option">--databases</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">选项使命令行上的所有名称都被视为数据库名称。</font>
							<font style="vertical-align: inherit;">如果没有此选项，</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">会将第一个名称视为数据库名称，将后续名称视为表名称。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								使用</font>
						</font><a class="link" href="programs.html#option_mysqldump_all-databases"><code class="option">--all-databases</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">or
							</font>
						</font><a class="link" href="programs.html#option_mysqldump_databases"><code class="option">--databases</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，
							</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								在每个数据库的转储输出之前</font>
							<font style="vertical-align: inherit;">写入</font>
						</font><a class="link" href="sql-syntax.html#create-database" title="13.1.12 CREATE DATABASE语法"><code class="literal">CREATE
								DATABASE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">和</font>
						</font><a class="link" href="sql-syntax.html#use" title="13.8.4 USE语法"><code class="literal">USE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句。</font>
							<font style="vertical-align: inherit;">这可确保在重新加载转储文件时，如果每个数据库不存在，它将创建每个数据库，并使其成为默认数据库，以便将数据库内容加载到它们所来自的同一数据库中。</font>
							<font style="vertical-align: inherit;">如果要在重新创建数据库之前使转储文件强制删除每个数据库，请同时使用该
							</font>
						</font><a class="link" href="programs.html#option_mysqldump_add-drop-database"><code class="option">--add-drop-database</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">选项。</font>
							<font style="vertical-align: inherit;">在这种情况下，</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">在</font>
						</font><a class="link" href="sql-syntax.html#drop-database" title="13.1.24 DROP DATABASE语法"><code class="literal">DROP
								DATABASE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">每个</font>
						</font><a class="link" href="sql-syntax.html#create-database" title="13.1.12 CREATE DATABASE语法"><code class="literal">CREATE
								DATABASE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句</font>
							<font style="vertical-align: inherit;">之前</font>
							<font style="vertical-align: inherit;">写一个
							</font>
							<font style="vertical-align: inherit;">语句。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要转储单个数据库，请在命令行中为其命名：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump --databases test &gt; dump.sql</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								在单数据库的情况下，允许省略
							</font>
						</font><a class="link" href="programs.html#option_mysqldump_databases"><code class="option">--databases</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">选项：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump test &gt; dump.sql</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								前面两个命令之间的区别在于，没有</font>
						</font><a class="link" href="programs.html#option_mysqldump_databases"><code class="option">--databases</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，转储输出包含no </font>
						</font><a class="link" href="sql-syntax.html#create-database" title="13.1.12 CREATE DATABASE语法"><code class="literal">CREATE
								DATABASE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">或</font>
						</font><a class="link" href="sql-syntax.html#use" title="13.8.4 USE语法"><code class="literal">USE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								语句。</font>
							<font style="vertical-align: inherit;">这有几个含义：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											重新加载转储文件时，必须指定默认数据库名称，以便服务器知道要重新加载的数据库。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											对于重新加载，您可以指定与原始名称不同的数据库名称，这使您可以将数据重新加载到其他数据库中。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如果要重新加载的数据库不存在，则必须先创建它。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											由于输出不包含任何
										</font>
									</font><a class="link" href="sql-syntax.html#create-database" title="13.1.12 CREATE DATABASE语法"><code class="literal">CREATE
											DATABASE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">语句，因此该</font>
									</font><a class="link" href="programs.html#option_mysqldump_add-drop-database"><code class="option">--add-drop-database</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											选项无效。</font>
										<font style="vertical-align: inherit;">如果你使用它，它不会产生任何
										</font>
									</font><a class="link" href="sql-syntax.html#drop-database" title="13.1.24 DROP DATABASE语法"><code class="literal">DROP
											DATABASE</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">声明。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要仅从数据库转储特定表，请在数据库名称后面的命令行中为它们命名：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump test t1 t3 t7 &gt; dump.sql</code></strong>
</pre>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="reloading-sql-format-dumps"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.4.2重新加载SQL格式备份</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要重新加载由</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">编写的</font>
							<font style="vertical-align: inherit;">
								包含SQL语句</font>
							<font style="vertical-align: inherit;">的转储文件</font>
							<font style="vertical-align: inherit;">，请将其用作</font>
						</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysql</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">客户端的</font>
							<font style="vertical-align: inherit;">输入
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">如果转储文件是由</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">使用
							</font>
						</font><a class="link" href="programs.html#option_mysqldump_all-databases"><code class="option">--all-databases</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">or
							</font>
						</font><a class="link" href="programs.html#option_mysqldump_databases"><code class="option">--databases</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">选项</font>
							<font style="vertical-align: inherit;">创建的
							</font>
							<font style="vertical-align: inherit;">，则它包含</font>
						</font><a class="link" href="sql-syntax.html#create-database" title="13.1.12 CREATE DATABASE语法"><code class="literal">CREATE
								DATABASE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">和
							</font>
						</font><a class="link" href="sql-syntax.html#use" title="13.8.4 USE语法"><code class="literal">USE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句，并且没有必要指定要加载数据的默认数据库：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysql &lt; dump.sql</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								或者，从</font>
						</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysql中</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，使用
							</font>
						</font><code class="literal">source</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">命令：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MySQL的&gt; </font></font><strong class="userinput"><code>source dump.sql</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果文件是不包含</font>
						</font><a class="link" href="sql-syntax.html#create-database" title="13.1.12 CREATE DATABASE语法"><code class="literal">CREATE
								DATABASE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">和
							</font>
						</font><a class="link" href="sql-syntax.html#use" title="13.8.4 USE语法"><code class="literal">USE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句</font>
							<font style="vertical-align: inherit;">的单数据库转储
							</font>
							<font style="vertical-align: inherit;">，请首先创建数据库（如有必要）：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqladmin create db1</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								然后在加载转储文件时指定数据库名称：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysql db1 &lt; dump.sql</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								或者，在</font>
						</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysql</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">中创建数据库，将其选为默认数据库，然后加载转储文件：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">mysql&gt; </font></font><strong class="userinput"><code>CREATE DATABASE IF NOT EXISTS db1;</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
mysql&gt; </font></font><strong class="userinput"><code>USE db1;</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
mysql&gt;</font></font><strong class="userinput"><code>source dump.sql</code></strong>
</pre>
					<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">

						<div class="admon-title">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									注意
								</font>
							</font>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									对于Windows PowerShell用户：由于“&lt;”字符保留供将来在PowerShell中使用，因此需要一种替代方法，例如使用引号</font>
							</font><code class="literal">cmd.exe /c "mysql
								&lt; dump.sql"</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
					</div>

				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="mysqldump-delimited-text"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.4.3使用mysqldump以分隔文本格式转储数据</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								本节介绍如何使用</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								创建分隔文本转储文件。</font>
							<font style="vertical-align: inherit;">有关重新加载此类转储文件的信息，请参见
							</font>
						</font><a class="xref" href="backup-and-recovery.html#reloading-delimited-text-dumps" title="7.4.4重新加载分隔文本格式备份">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第7.4.4节“重新加载分隔文本格式备份”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果</font>
							<font style="vertical-align: inherit;">使用该
							</font>
							<font style="vertical-align: inherit;">
								选项</font>
							<font style="vertical-align: inherit;">调用</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，它将</font>
							<font style="vertical-align: inherit;">用作输出目录，并使用每个表的两个文件在该目录中单独转储表。</font>
							<font style="vertical-align: inherit;">表名是这些文件的基本名称。</font>
							<font style="vertical-align: inherit;">对于名为的表</font>
							<font style="vertical-align: inherit;">，文件名为</font>
							<font style="vertical-align: inherit;">and
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">该</font>
							<font style="vertical-align: inherit;">文件包含</font>
							<font style="vertical-align: inherit;">该表</font>
							<font style="vertical-align: inherit;">的</font>
							<font style="vertical-align: inherit;">语句。</font>
							<font style="vertical-align: inherit;">该</font>
							<font style="vertical-align: inherit;">文件包含表数据，每个表行一行。
							</font>
						</font><a class="link" href="programs.html#option_mysqldump_tab"><code class="option">--tab=<em class="replaceable"><code>dir_name</code></em></code></a>
						<font style="vertical-align: inherit;"></font><em class="replaceable"><code>dir_name</code></em>
						<font style="vertical-align: inherit;"></font><code class="literal">t1</code>
						<font style="vertical-align: inherit;"></font><code class="filename">t1.sql</code>
						<font style="vertical-align: inherit;"></font><code class="filename">t1.txt</code>
						<font style="vertical-align: inherit;"></font><code class="filename">.sql</code>
						<font style="vertical-align: inherit;"></font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code
							 class="literal">CREATE TABLE</code></a>
						<font style="vertical-align: inherit;"></font><code class="filename">.txt</code>
						<font style="vertical-align: inherit;"></font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								以下命令将</font>
						</font><code class="literal">db1</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">数据库</font>
							<font style="vertical-align: inherit;">的内容转储到
							</font>
							<font style="vertical-align: inherit;">数据库中的文件
							</font>
						</font><code class="filename">/tmp</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump --tab=/tmp db1</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;"></font><code class="filename">.txt</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">包含表数据</font>
							<font style="vertical-align: inherit;">
								的</font>
							<font style="vertical-align: inherit;">文件由服务器写入，因此它们由用于运行服务器的系统帐户拥有。</font>
							<font style="vertical-align: inherit;">服务器用于
							</font>
						</font><a class="link" href="sql-syntax.html#select-into" title="13.2.10.1 SELECT ... INTO语法"><code class="literal">SELECT
								... INTO
								OUTFILE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">写入文件，因此您必须具有</font>
						</font><a class="link" href="security.html#priv_file"><code class="literal">FILE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">执行此操作</font>
							<font style="vertical-align: inherit;">的
							</font>
							<font style="vertical-align: inherit;">权限，并且如果给定</font>
						</font><code class="filename">.txt</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件已存在</font>
							<font style="vertical-align: inherit;">则会发生错误
							</font>
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								服务器将</font>
						</font><code class="literal">CREATE</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">转储表</font>
							<font style="vertical-align: inherit;">的</font>
							<font style="vertical-align: inherit;">定义</font>
							<font style="vertical-align: inherit;">发送</font>
							<font style="vertical-align: inherit;">到</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，后者将它们写入</font>
						</font><code class="filename">.sql</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件。</font>
							<font style="vertical-align: inherit;">因此，这些文件由执行</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">的用户拥有</font>
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								最好</font>
						</font><a class="link" href="programs.html#option_mysqldump_tab"><code class="option">--tab</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">只用于转储本地服务器。</font>
							<font style="vertical-align: inherit;">如果您与远程服务器使用，该</font>
						</font><a class="link" href="programs.html#option_mysqldump_tab"><code class="option">--tab</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">目录必须存在于本地和远程主机都和
							</font>
						</font><code class="filename">.txt</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件将通过在远程目录服务器（服务器主机上）写，而
							</font>
						</font><code class="filename">.sql</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件将被写入
							</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">的mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">在本地目录（在客户端主机上）。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								对于</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump --tab</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，服务器默认情况下将表数据写入</font>
						</font><code class="filename">.txt</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件每行一行，列值之间有选项卡，列值周围没有引号，新行作为行终止符。</font>
							<font style="vertical-align: inherit;">（这些默认值与</font>
						</font><a class="link" href="sql-syntax.html#select-into" title="13.2.10.1 SELECT ... INTO语法"><code class="literal">SELECT
								... INTO
								OUTFILE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">相同
							</font>
							<font style="vertical-align: inherit;">。）
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要使用不同的格式写入数据文件，
							</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">支持以下选项：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<a class="link" href="programs.html#option_mysqldump_fields"><code class="option">--fields-terminated-by=<em
											 class="replaceable"><code>str</code></em></code></a>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											用于分隔列值的字符串（默认值：tab）。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<a class="link" href="programs.html#option_mysqldump_fields"><code class="option">--fields-enclosed-by=<em
											 class="replaceable"><code>char</code></em></code></a>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											用于包含列值的字符（默认值：无字符）。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<a class="link" href="programs.html#option_mysqldump_fields"><code class="option">--fields-optionally-enclosed-by=<em
											 class="replaceable"><code>char</code></em></code></a>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											用于包含非数字列值的字符（默认值：无字符）。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<a class="link" href="programs.html#option_mysqldump_fields"><code class="option">--fields-escaped-by=<em
											 class="replaceable"><code>char</code></em></code></a>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											转义特殊字符的字符（默认值：无转义）。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<a class="link" href="programs.html#option_mysqldump_lines-terminated-by"><code class="option">--lines-terminated-by=<em
											 class="replaceable"><code>str</code></em></code></a>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											行终止字符串（默认值：换行符）。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								根据您为任何这些选项指定的值，可能需要在命令行上为命令解释程序引用或转义值。</font>
							<font style="vertical-align: inherit;">或者，使用十六进制表示法指定值。</font>
							<font style="vertical-align: inherit;">假设您希望
							</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">在双引号内引用列值。</font>
							<font style="vertical-align: inherit;">为此，请指定双引号作为</font>
						</font><a class="link" href="programs.html#option_mysqldump_fields"><code class="option">--fields-enclosed-by</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								选项</font>
							<font style="vertical-align: inherit;">的值
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">但是这个角色通常对指挥口译员来说是特殊的，必须特别对待。</font>
							<font style="vertical-align: inherit;">例如，在Unix上，您可以引用双引号，如下所示：
							</font>
						</font>
					</p>
					<pre data-lang="simple" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">--fields封闭逐=““”
</font></font></pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								在任何平台上，您都可以以十六进制指定值：
							</font>
						</font>
					</p>
					<pre data-lang="simple" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">--fields封闭逐=为0x22
</font></font></pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								通常一起使用几个数据格式化选项。</font>
							<font style="vertical-align: inherit;">例如，要以逗号分隔值格式转储表格，并使用由回车符/换行符对（</font>
						</font><code class="literal">\r\n</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">）</font>
							<font style="vertical-align: inherit;">终止的行</font>
							<font style="vertical-align: inherit;">，请使用此命令（在一行中输入）：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump --tab=/tmp --fields-terminated-by=,</code></strong>
         <strong class="userinput"><code>--fields-enclosed-by='"' --lines-terminated-by=0x0d0a db1</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果您使用任何数据格式化选项来转储表数据，则需要在以后重新加载数据文件时指定相同的格式，以确保正确解释文件内容。
							</font>
						</font>
					</p>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="reloading-delimited-text-dumps"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.4.4重新加载分隔文本格式备份</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								对于使用</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump生成的</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">备份</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span
								 class="command"><strong>
										<font style="vertical-align: inherit;">--tab</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">，每个表在输出目录中由
							</font>
						</font><code class="filename">.sql</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">包含</font>
						</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">的
							</font>
							<font style="vertical-align: inherit;">语句的</font>
						</font><code class="filename">.txt</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件</font>
							<font style="vertical-align: inherit;">和</font>
							<font style="vertical-align: inherit;">包含表数据</font>
							<font style="vertical-align: inherit;">的</font>
							<font style="vertical-align: inherit;">文件表示。</font>
							<font style="vertical-align: inherit;">要重新加载表，首先将位置更改为输出目录。</font>
							<font style="vertical-align: inherit;">然后</font>
						</font><code class="filename">.sql</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">使用</font>
						</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysql</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">处理</font>
							<font style="vertical-align: inherit;">文件
							</font>
							<font style="vertical-align: inherit;">以创建一个空表并处理该</font>
						</font><code class="filename">.txt</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件以将数据加载到表中：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">shell&gt; </font></font><strong class="userinput"><code>mysql db1 &lt; t1.sql</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
shell&gt;</font></font><strong class="userinput"><code>mysqlimport db1 t1.txt</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								使用</font>
						</font><a class="link" href="programs.html#mysqlimport" title="4.5.5 mysqlimport  - 数据导入程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqlimport</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">加载数据文件</font>
							<font style="vertical-align: inherit;">的另一种方法</font>
							<font style="vertical-align: inherit;">是使用</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span
								 class="command"><strong>
										<font style="vertical-align: inherit;">mysql</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">客户端中</font>
							<font style="vertical-align: inherit;">的</font>
						</font><a class="link" href="sql-syntax.html#load-data" title="13.2.7 LOAD DATA语法"><code class="literal">LOAD
								DATA</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句
							</font>
							<font style="vertical-align: inherit;">：
							</font>
						</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">mysql&gt; </font></font><strong class="userinput"><code>USE db1;</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
mysql&gt;</font></font><strong class="userinput"><code>LOAD DATA INFILE 't1.txt' INTO TABLE t1;</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果</font>
							<font style="vertical-align: inherit;">在最初转储表时</font>
							<font style="vertical-align: inherit;">使用了</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump的</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">任何数据格式化选项
							</font>
							<font style="vertical-align: inherit;">，则必须使用与</font>
						</font><a class="link" href="programs.html#mysqlimport" title="4.5.5 mysqlimport  - 数据导入程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqlimport</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">相同的选项
							</font>
							<font style="vertical-align: inherit;">或</font>
						</font><a class="link" href="sql-syntax.html#load-data" title="13.2.7 LOAD DATA语法"><code class="literal">LOAD
								DATA</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">确保正确解释数据文件内容：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqlimport --fields-terminated-by=,</code></strong>
         <strong class="userinput"><code>--fields-enclosed-by='"' --lines-terminated-by=0x0d0a db1 t1.txt</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要么：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">mysql&gt; </font></font><strong class="userinput"><code>USE db1;</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
mysql&gt;</font></font><strong class="userinput"><code>LOAD DATA INFILE 't1.txt' INTO TABLE t1</code></strong>
       <strong class="userinput"><code>FIELDS TERMINATED BY ',' FIELDS ENCLOSED BY '"'</code></strong>
       <strong class="userinput"><code>LINES TERMINATED BY '\r\n';</code></strong>
</pre>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="mysqldump-tips"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.4.5 mysqldump提示</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<div class="toc">
						<dl class="toc"><dt><span class="section"><a href="backup-and-recovery.html#mysqldump-copying-database">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.5.1制作数据库副本</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#mysqldump-copying-to-other-server">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.5.2将数据库从一个服务器复制到另一个服务器</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#mysqldump-stored-programs">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.5.3转储存储的程序</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#mysqldump-definition-data-dumps">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.5.4单独倾倒表定义和内容</font>
										</font>
									</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#mysqldump-upgrade-testing">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.5.5使用mysqldump测试升级不兼容性</font>
										</font>
									</a></span></dt></dl>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								本节介绍了使用
							</font>
						</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqldump</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">解决特定问题的技术：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如何复制数据库
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如何将数据库从一个服务器复制到另一个服务器
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如何转储存储的程序（存储过程和函数，触发器和事件）
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如何单独转储定义和数据
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>
					<div class="section">
						<div class="titlepage">
							<div>
								<div>
									<h4 class="title"><a name="mysqldump-copying-database"></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.5.1制作数据库副本</font>
										</font>
									</h4>

								</div>

							</div>

						</div>
						<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">shell&gt; </font></font><strong class="userinput"><code>mysqldump db1 &gt; dump.sql</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
shell&gt; </font></font><strong class="userinput"><code>mysqladmin create db2</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
shell&gt;</font></font><strong class="userinput"><code>mysql db2 &lt; dump.sql</code></strong>
</pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									不要</font>
							</font><a class="link" href="programs.html#option_mysqldump_databases"><code class="option">--databases</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">在</font>
							</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">mysqldump</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">命令行</font>
								<font style="vertical-align: inherit;">上</font>
								<font style="vertical-align: inherit;">使用</font>
								<font style="vertical-align: inherit;">，</font>
								<font style="vertical-align: inherit;">因为这会导致</font>
							</font><code class="literal">USE db1</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">包含在转储文件中，这会覆盖</font>
							</font><code class="literal">db2</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">在</font>
							</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">mysql</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">命令行</font>
								<font style="vertical-align: inherit;">上命名的效果
								</font>
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
					</div>
					<div class="section">
						<div class="titlepage">
							<div>
								<div>
									<h4 class="title"><a name="mysqldump-copying-to-other-server"></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.5.2将数据库从一个服务器复制到另一个服务器</font>
										</font>
									</h4>

								</div>

							</div>

						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									在服务器1上：
								</font>
							</font>
						</p>
						<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump --databases db1 &gt; dump.sql</code></strong>
</pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									将转储文件从服务器1复制到服务器2。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									在服务器2上：
								</font>
							</font>
						</p>
						<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysql &lt; dump.sql</code></strong>
</pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									使用</font>
							</font><a class="link" href="programs.html#option_mysqldump_databases"><code class="option">--databases</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">与
								</font>
							</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">mysqldump的</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">命令行导致转储文件，包括</font>
							</font><a class="link" href="sql-syntax.html#create-database" title="13.1.12 CREATE DATABASE语法"><code class="literal">CREATE
									DATABASE</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">与
								</font>
							</font><a class="link" href="sql-syntax.html#use" title="13.8.4 USE语法"><code class="literal">USE</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">创建数据库语句，如果它确实存在，并使其成为默认的数据库为重新加载数据。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									或者，你可以省略
								</font>
							</font><a class="link" href="programs.html#option_mysqldump_databases"><code class="option">--databases</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">从
								</font>
							</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">mysqldump的</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">命令。</font>
								<font style="vertical-align: inherit;">然后，您需要在服务器2上创建数据库（如果需要），并在重新加载转储文件时将其指定为默认数据库。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									在服务器1上：
								</font>
							</font>
						</p>
						<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump db1 &gt; dump.sql</code></strong>
</pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									在服务器2上：
								</font>
							</font>
						</p>
						<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">shell&gt; </font></font><strong class="userinput"><code>mysqladmin create db1</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
shell&gt;</font></font><strong class="userinput"><code>mysql db1 &lt; dump.sql</code></strong>
</pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									你可以在这种情况下指定不同的数据库名称，所以省略</font>
							</font><a class="link" href="programs.html#option_mysqldump_databases"><code class="option">--databases</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">从</font>
							</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">mysqldump的</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">命令，可以从一个数据库转储数据并将其加载到另一个。
								</font>
							</font>
						</p>
					</div>
					<div class="section">
						<div class="titlepage">
							<div>
								<div>
									<h4 class="title"><a name="mysqldump-stored-programs"></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.5.3转储存储的程序</font>
										</font>
									</h4>

								</div>

							</div>

						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									有几个选项控制</font>
							</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">mysqldump</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">如何</font>
								<font style="vertical-align: inherit;">
									处理存储的程序（存储过程和函数，触发器和事件）：
								</font>
							</font>
						</p>
						<div class="itemizedlist">
							<ul class="itemizedlist" style="list-style-type: disc; ">
								<li class="listitem">
									<p>
										<a class="link" href="programs.html#option_mysqldump_events"><code class="option">--events</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">：转储事件计划程序事件
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<a class="link" href="programs.html#option_mysqldump_routines"><code class="option">--routines</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">：转储存储过程和函数
											</font>
										</font>
									</p>
								</li>
								<li class="listitem">
									<p>
										<a class="link" href="programs.html#option_mysqldump_triggers"><code class="option">--triggers</code></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">：转储表的触发器
											</font>
										</font>
									</p>
								</li>
							</ul>
						</div>
						<p>
							<font style="vertical-align: inherit;"></font><a class="link" href="programs.html#option_mysqldump_triggers"><code
								 class="option">--triggers</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">默认情况下启用</font>
								<font style="vertical-align: inherit;">
									该</font>
								<font style="vertical-align: inherit;">选项，以便在转储表时，它们伴随着它们具有的任何触发器。</font>
								<font style="vertical-align: inherit;">默认情况下禁用其他选项，必须明确指定以转储相应的对象。</font>
								<font style="vertical-align: inherit;">要禁用的任何选项明确，利用其跳跃的形式：
								</font>
							</font><a class="link" href="programs.html#option_mysqldump_events"><code class="option">--skip-events</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，
								</font>
							</font><a class="link" href="programs.html#option_mysqldump_routines"><code class="option">--skip-routines</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，或
								</font>
							</font><a class="link" href="programs.html#option_mysqldump_triggers"><code class="option">--skip-triggers</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
					</div>
					<div class="section">
						<div class="titlepage">
							<div>
								<div>
									<h4 class="title"><a name="mysqldump-definition-data-dumps"></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.5.4单独倾倒表定义和内容</font>
										</font>
									</h4>

								</div>

							</div>

						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									该</font>
							</font><a class="link" href="programs.html#option_mysqldump_no-data"><code class="option">--no-data</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">选项告诉
								</font>
							</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">mysqldump</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">不要转储表数据，导致转储文件只包含用于创建表的语句。</font>
								<font style="vertical-align: inherit;">相反，该
								</font>
							</font><a class="link" href="programs.html#option_mysqldump_no-create-info"><code class="option">--no-create-info</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">选项告诉</font>
							</font><a class="link" href="programs.html#mysqldump" title="4.5.4 mysqldump  - 数据库备份程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">mysqldump</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">禁止
								</font>
							</font><code class="literal">CREATE</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">输出语句，以便转储文件仅包含表数据。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									例如，要分别为</font>
							</font><code class="literal">test</code>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">数据库</font>
								<font style="vertical-align: inherit;">转储表定义和数据</font>
								<font style="vertical-align: inherit;">，请使用以下命令：
								</font>
							</font>
						</p>
						<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">shell&gt; </font></font><strong class="userinput"><code>mysqldump --no-data test &gt; dump-defs.sql</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
shell&gt;</font></font><strong class="userinput"><code>mysqldump --no-create-info test &gt; dump-data.sql</code></strong>
</pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									对于仅定义转储，添加
								</font>
							</font><a class="link" href="programs.html#option_mysqldump_routines"><code class="option">--routines</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									和
								</font>
							</font><a class="link" href="programs.html#option_mysqldump_events"><code class="option">--events</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									选项还包括存储的例程和事件定义：
								</font>
							</font>
						</p>
						<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump --no-data --routines --events test &gt; dump-defs.sql</code></strong>
</pre>
					</div>
					<div class="section">
						<div class="titlepage">
							<div>
								<div>
									<h4 class="title"><a name="mysqldump-upgrade-testing"></a>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">7.4.5.5使用mysqldump测试升级不兼容性</font>
										</font>
									</h4>

								</div>

							</div>

						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									在考虑进行MySQL升级时，谨慎的做法是将新版本与当前的生产版本分开安装。</font>
								<font style="vertical-align: inherit;">然后，您可以从生产服务器转储数据库和数据库对象定义，并将它们加载到新服务器中，以验证它们是否已正确处理。</font>
								<font style="vertical-align: inherit;">（这对于测试降级也很有用。）
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									在生产服务器上：
								</font>
							</font>
						</p>
						<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump --all-databases --no-data --routines --events &gt; dump-defs.sql</code></strong>
</pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									在升级的服务器上：
								</font>
							</font>
						</p>
						<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysql &lt; dump-defs.sql</code></strong>
</pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									由于转储文件不包含表数据，因此可以快速处理。</font>
								<font style="vertical-align: inherit;">这使您能够发现潜在的不兼容性，而无需等待冗长的数据加载操作。</font>
								<font style="vertical-align: inherit;">在处理转储文件时查找警告或错误。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									验证定义处理正确后，转储数据并尝试将其加载到升级后的服务器中。
								</font>
							</font>
						</p>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									在生产服务器上：
								</font>
							</font>
						</p>
						<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqldump --all-databases --no-create-info &gt; dump-data.sql</code></strong>
</pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									在升级的服务器上：
								</font>
							</font>
						</p>
						<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysql &lt; dump-data.sql</code></strong>
</pre>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									现在检查表内容并运行一些测试查询。
								</font>
							</font>
						</p>
					</div>

				</div>

			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="point-in-time-recovery"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">7.5使用二进制日志进行时间点（增量）恢复</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<div class="toc">
					<dl class="toc"><dt><span class="section"><a href="backup-and-recovery.html#point-in-time-recovery-times">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.5.1使用事件时间的时间点恢复</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#point-in-time-recovery-positions">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.5.2使用事件位置的时间点恢复</font>
									</font>
								</a></span></dt></dl>
				</div>
				<a class="indexterm" name="idm140091709881584"></a><a class="indexterm" name="idm140091709880544"></a><a class="indexterm"
				 name="idm140091709879056"></a><a class="indexterm" name="idm140091709877984"></a>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							时间点恢复是指恢复自给定时间点以来所做的数据更改。</font>
						<font style="vertical-align: inherit;">通常，在还原完整备份之后执行此类型的恢复，该备份使服务器进入备份时的状态。</font>
						<font style="vertical-align: inherit;">（完整备份可以通过多种方式进行，例如</font>
					</font><a class="xref" href="backup-and-recovery.html#backup-methods" title="7.2数据库备份方法">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第7.2节“数据库备份方法”中</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">列出的那些
						</font>
						<font style="vertical-align: inherit;">。）时间点恢复然后使服务器从完全备份的时间开始逐步更新为更多最近的时间。
						</font>
					</font>
				</p>
				<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">

					<div class="admon-title">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								注意
							</font>
						</font>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								这里的许多示例都使用</font>
						</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysql</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								客户端来处理</font>
						</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqlbinlog</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">生成的二进制日志输出
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">如果您的二进制日志包含
							</font>
						</font><code class="literal">\0</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">（null）字符，则</font>
							<font style="vertical-align: inherit;">除非您使用该</font>
							<font style="vertical-align: inherit;">选项</font>
							<font style="vertical-align: inherit;">调用</font>
							<font style="vertical-align: inherit;">该输出，</font>
							<font style="vertical-align: inherit;">否则
							</font>
						</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysql</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">无法解析该输出</font>
						</font><a class="link" href="programs.html#option_mysql_binary-mode"><code class="option">--binary-mode</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							时间点恢复的信息源是由完全备份操作之后生成的二进制日志文件表示的增量备份集。</font>
						<font style="vertical-align: inherit;">因此，必须使用</font>
					</font><a class="link" href="replication.html#option_mysqld_log-bin"><code class="option">--log-bin</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							启用二进制日志记录</font>
						<font style="vertical-align: inherit;">的</font>
						<font style="vertical-align: inherit;">选项</font>
						<font style="vertical-align: inherit;">启动服务器</font>
						<font style="vertical-align: inherit;">（请参见
						</font>
					</font><a class="xref" href="server-administration.html#binary-log" title="5.4.4二进制日志">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第5.4.4节“二进制日志”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">）。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要从二进制日志还原数据，您必须知道当前二进制日志文件的名称和位置。</font>
						<font style="vertical-align: inherit;">默认情况下，服务器在数据目录中创建二进制日志文件，但可以使用</font>
					</font><a class="link" href="replication.html#option_mysqld_log-bin"><code class="option">--log-bin</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							选项将文件放在不同的位置</font>
						<font style="vertical-align: inherit;">来指定路径名</font>
						<font style="vertical-align: inherit;">。
						</font>
					</font><a class="xref" href="server-administration.html#binary-log" title="5.4.4二进制日志">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第5.4.4节“二进制日志”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要查看所有二进制日志文件的列表，请使用以下语句：
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MySQL的&gt; </font></font><strong class="userinput"><code>SHOW BINARY LOGS;</code></strong>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							要确定当前二进制日志文件的名称，请发出以下语句：
						</font>
					</font>
				</p>
				<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MySQL的&gt; </font></font><strong class="userinput"><code>SHOW MASTER STATUS;</code></strong>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							该</font>
					</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqlbinlog可以</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">实用转换从二进制格式的二进制日志文件的事件文本，以便他们可以执行或查看。</font>
					</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqlbinlog</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">具有根据日志中事件时间或事件位置选择二进制日志部分的选项。</font>
						<font style="vertical-align: inherit;">请参见
						</font>
					</font><a class="xref" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第4.6.8节“ </font>
						</font><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqlbinlog</font>
								</font>
							</strong></span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> - 处理二进制日志文件的实用程序”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							从二进制日志执行事件会导致重做它们所代表的数据修改。</font>
						<font style="vertical-align: inherit;">这样可以在给定的时间范围内恢复数据更改。</font>
						<font style="vertical-align: inherit;">要从二进制日志执行事件，请</font>
						<font style="vertical-align: inherit;">使用</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;">mysql</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">客户端</font>
						<font style="vertical-align: inherit;">处理</font>
					</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqlbinlog</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">输出
						</font>
						<font style="vertical-align: inherit;">：
						</font>
					</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
								<font style="vertical-align: inherit;"></font>
							</strong></span></a>
					<font style="vertical-align: inherit;"></font>
				</p>
				<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqlbinlog <em class="replaceable"><code>binlog_files</code></em> | mysql -u root -p</code></strong>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							如果二进制日志文件已经加密，可以从MySQL 8.0.14开始加密，</font>
					</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqlbinlog</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">不能像上面的例子那样直接读取它们，但是可以使用</font>
					</font><a class="link" href="programs.html#option_mysqlbinlog_read-from-remote-server"><code class="option">--read-from-remote-server</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							（</font>
					</font><code class="literal">-R</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">）选项</font>
						<font style="vertical-align: inherit;">从服务器读取它们
						</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">例如：
						</font>
					</font>
				</p>
				<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqlbinlog --read-from-remote-server --host=<em class="replaceable"><code>host_name</code></em> --port=3306  --user=root --password --ssl-mode=required  <em class="replaceable"><code>binlog_files</code></em> | mysql -u root -p</code></strong>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							这里，该选项</font>
					</font><code class="literal">--ssl-mode=required</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">用于确保二进制日志文件中的数据在传输过程中受到保护，因为它</font>
						<font style="vertical-align: inherit;">以未加密的格式</font>
						<font style="vertical-align: inherit;">发送到
						</font>
					</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqlbinlog</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							在需要确定事件时间或位置以在执行事件之前选择部分日志内容时，查看日志内容非常有用。</font>
						<font style="vertical-align: inherit;">要从日志中查看事件，请将</font>
					</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqlbinlog</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">输出</font>
						<font style="vertical-align: inherit;">发送
						</font>
						<font style="vertical-align: inherit;">到分页程序：
						</font>
					</font>
				</p>
				<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqlbinlog <em class="replaceable"><code>binlog_files</code></em> | more</code></strong>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							或者，将输出保存在文件中并在文本编辑器中查看文件：
						</font>
					</font>
				</p>
				<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">shell&gt; </font><font style="vertical-align: inherit;">
shell&gt; </font><font style="vertical-align: inherit;">......
</font></font><strong class="userinput"><code>mysqlbinlog <em class="replaceable"><code>binlog_files</code></em> &gt; tmpfile</code></strong><font style="vertical-align: inherit;"></font><em class="replaceable"><code>edit tmpfile</code></em><font style="vertical-align: inherit;"></font></pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							将输出保存在文件中非常有用，可以在删除某些事件（例如意外事件）时执行日志内容</font>
					</font><a class="link" href="sql-syntax.html#drop-database" title="13.1.24 DROP DATABASE语法"><code class="literal">DROP
							DATABASE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">您可以在执行其内容之前从文件中删除任何不执行的语句。</font>
						<font style="vertical-align: inherit;">编辑文件后，执行如下内容：
						</font>
					</font>
				</p>
				<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysql -u root -p &lt; tmpfile</code></strong>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							如果要在MySQL服务器上执行多个二进制日志，则安全方法是使用与服务器的单个连接来处理它们。</font>
						<font style="vertical-align: inherit;">这是一个演示可能</font>
					</font><span class="emphasis"><em>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">不安全</font>
							</font>
						</em></span>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">的示例</font>
						<font style="vertical-align: inherit;">：
						</font>
					</font>
				</p>
				<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">shell&gt; </font></font><strong class="userinput"><code>mysqlbinlog binlog.000001 | mysql -u root -p # DANGER!!</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
shell&gt;</font></font><strong class="userinput"><code>mysqlbinlog binlog.000002 | mysql -u root -p # DANGER!!</code></strong>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							如果第一个日志文件包含</font>
					</font><a class="link" href="sql-syntax.html#create-table" title="13.1.20 CREATE TABLE语法"><code class="literal">CREATE
							TEMPORARY
							TABLE</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">语句而第二个日志包含使用临时表的语句，则使用与</font>
						<font style="vertical-align: inherit;">服务器的不同连接以这种方式处理二进制日志会导致问题
						</font>
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">当第一个
						</font>
					</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysql</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">进程终止时，服务器将删除临时表。</font>
						<font style="vertical-align: inherit;">当第二个</font>
					</font><a class="link" href="programs.html#mysql" title="4.5.1 mysql  -  MySQL命令行客户端"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysql</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">进程尝试使用该表时，服务器报告</font>
					</font><span class="quote">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">“ </font>
						</font><span class="quote">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">未知表”。</font>
							</font>
						</span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">”</font>
						</font>
					</span>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							为避免此类问题，请使用</font>
					</font><span class="emphasis"><em>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">单个</font>
							</font>
						</em></span>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							连接来执行要处理的所有二进制日志的内容。</font>
						<font style="vertical-align: inherit;">这是一种方法：
						</font>
					</font>
				</p>
				<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqlbinlog binlog.000001 binlog.000002 | mysql -u root -p</code></strong>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							另一种方法是将所有日志写入单个文件，然后处理该文件：
						</font>
					</font>
				</p>
				<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">shell&gt; </font></font><strong class="userinput"><code>mysqlbinlog binlog.000001 &gt;  /tmp/statements.sql</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
shell&gt; </font></font><strong class="userinput"><code>mysqlbinlog binlog.000002 &gt;&gt; /tmp/statements.sql</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
shell&gt;</font></font><strong class="userinput"><code>mysql -u root -p -e "source /tmp/statements.sql"</code></strong>
</pre>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							在从包含GTID的二进制日志中读取时写入转储文件时（请参见</font>
					</font><a class="xref" href="replication.html#replication-gtids" title="17.1.3使用全局事务标识符进行复制">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第17.1.3节“使用全局事务标识符复制”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">），请使用</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;">mysqlbinlog</font>
								</strong></span></a>
					</font><a class="link" href="programs.html#option_mysqlbinlog_skip-gtids"><code class="option">--skip-gtids</code></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">选项
						</font>
						<font style="vertical-align: inherit;">，如下所示：
						</font>
					</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;"></font>
							</strong></span></a>
					<font style="vertical-align: inherit;"></font>
				</p>
				<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">shell&gt; </font></font><strong class="userinput"><code>mysqlbinlog --skip-gtids binlog.000001 &gt;  /tmp/dump.sql</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
shell&gt; </font></font><strong class="userinput"><code>mysqlbinlog --skip-gtids binlog.000002 &gt;&gt; /tmp/dump.sql</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
shell&gt;</font></font><strong class="userinput"><code>mysql -u root -p -e "source /tmp/dump.sql"</code></strong>
</pre>
				<div class="section">

					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="point-in-time-recovery-times"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.5.1使用事件时间的时间点恢复</font>
									</font>
								</h3>
							</div>
						</div>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要指示恢复的开始和结束时间</font>
							<font style="vertical-align: inherit;">，请以
							</font>
							<font style="vertical-align: inherit;">格式</font>
							<font style="vertical-align: inherit;">指定</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span
								 class="command"><strong>
										<font style="vertical-align: inherit;">mysqlbinlog</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">的
							</font>
						</font><a class="link" href="programs.html#option_mysqlbinlog_start-datetime"><code class="option">--start-datetime</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">和
							</font>
						</font><a class="link" href="programs.html#option_mysqlbinlog_stop-datetime"><code class="option">--stop-datetime</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">选项
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">例如，假设确切地在2005年4月20日上午10:00执行了删除大表的SQL语句。</font>
							<font style="vertical-align: inherit;">要还原表和数据，可以还原前一晚的备份，然后执行以下命令：
							</font>
						</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font><a class="link" href="data-types.html#datetime" title="11.3.1 DATE，DATETIME和TIMESTAMP类型"><code
							 class="literal">DATETIME</code></a>
						<font style="vertical-align: inherit;"></font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqlbinlog --stop-datetime="2005-04-20 9:59:59" \</code></strong>
         <strong class="userinput"><code>/var/log/mysql/bin.123456 | mysql -u root -p</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								此命令将恢复所有数据，直到该</font>
						</font><a class="link" href="programs.html#option_mysqlbinlog_stop-datetime"><code class="option">--stop-datetime</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								选项</font>
							<font style="vertical-align: inherit;">给出的日期和时间</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">如果您没有检测到几小时后输入的错误SQL语句，您可能还希望恢复之后发生的活动。</font>
							<font style="vertical-align: inherit;">基于此，您可以</font>
							<font style="vertical-align: inherit;">使用开始日期和时间再次</font>
							<font style="vertical-align: inherit;">运行</font>
						</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqlbinlog</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，如下所示：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqlbinlog --start-datetime="2005-04-20 10:01:00" \</code></strong>
         <strong class="userinput"><code>/var/log/mysql/bin.123456 | mysql -u root -p</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								在此命令中，将重新执行从上午10:01开始记录的SQL语句。</font>
							<font style="vertical-align: inherit;">恢复前一晚的转储文件和两个
							</font>
						</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqlbinlog</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">命令的组合将所有内容恢复到上午10:00之前的一秒钟以及从上午10:01开始的所有内容。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要使用此时间点恢复方法，您应检查日志以确保为命令指定的确切时间。</font>
							<font style="vertical-align: inherit;">要显示日志文件内容而不执行它们，请使用以下命令：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqlbinlog /var/log/mysql/bin.123456 &gt; /tmp/mysql_restore.sql</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								然后</font>
						</font><code class="filename">/tmp/mysql_restore.sql</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">使用文本编辑器</font>
							<font style="vertical-align: inherit;">打开</font>
							<font style="vertical-align: inherit;">文件进行检查。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">如果多个语句与要排除的语句同时执行，则</font>
							<font style="vertical-align: inherit;">
								通过指定</font>
						</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqlbinlog的</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">时间来排除特定更改将
							</font>
							<font style="vertical-align: inherit;">无法正常工作。
							</font>
						</font>
					</p>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="point-in-time-recovery-positions"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.5.2使用事件位置的时间点恢复</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<p>
						<font style="vertical-align: inherit;"><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span
								 class="command"><strong>
										<font style="vertical-align: inherit;">mysqlbinlog</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								的</font>
						</font><a class="link" href="programs.html#option_mysqlbinlog_start-position"><code class="option">--start-position</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">和
							</font>
						</font><a class="link" href="programs.html#option_mysqlbinlog_stop-position"><code class="option">--stop-position</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">选项
							</font>
							<font style="vertical-align: inherit;">可用于指定日志位置</font>
							<font style="vertical-align: inherit;">，而不是指定日期和时间
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">除了指定日志位置编号而不是日期之外，它们的工作方式与启动和停止日期选项相同。</font>
							<font style="vertical-align: inherit;">使用位置可以使您更准确地了解要恢复的日志部分，尤其是在许多事务与破坏性SQL语句同时发生的情况下。</font>
							<font style="vertical-align: inherit;">要确定位置编号，请</font>
							<font style="vertical-align: inherit;">在执行不需要的事务的时间附近</font>
							<font style="vertical-align: inherit;">运行
							</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">mysqlbinlog</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">一段时间，但将结果重定向到文本文件以供检查。</font>
							<font style="vertical-align: inherit;">这可以这样做：
							</font>
						</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqlbinlog --start-datetime="2005-04-20 9:55:00" \</code></strong>
         <strong class="userinput"><code>--stop-datetime="2005-04-20 10:05:00" \</code></strong>
         <strong class="userinput"><code>/var/log/mysql/bin.123456 &gt; /tmp/mysql_restore.sql</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								此命令在</font>
						</font><code class="filename">/tmp</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">目录中</font>
							<font style="vertical-align: inherit;">创建一个小文本文件，该
							</font>
							<font style="vertical-align: inherit;">文件包含执行有害SQL语句时的SQL语句。</font>
							<font style="vertical-align: inherit;">使用文本编辑器打开此文件，然后查找您不想重复的语句。</font>
							<font style="vertical-align: inherit;">确定二进制日志中的位置以停止和恢复恢复并记下它们。</font>
							<font style="vertical-align: inherit;">职位标记为
							</font>
						</font><code class="literal">log_pos</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">后跟数字。</font>
							<font style="vertical-align: inherit;">恢复上一个备份文件后，使用位置编号处理二进制日志文件。</font>
							<font style="vertical-align: inherit;">例如，您将使用以下命令：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysqlbinlog --stop-position=368312 /var/log/mysql/bin.123456 \</code></strong>
         <strong class="userinput"><code>| mysql -u root -p</code></strong><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
外壳&gt; </font></font><strong class="userinput"><code>mysqlbinlog --start-position=368315 /var/log/mysql/bin.123456 \</code></strong>
         <strong class="userinput"><code>| mysql -u root -p</code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								第一个命令恢复所有事务，直到给出停止位置。</font>
							<font style="vertical-align: inherit;">第二个命令恢复从给定的起始位置到二进制日志结束的所有事务。</font>
							<font style="vertical-align: inherit;">因为</font>
						</font><a class="link" href="programs.html#mysqlbinlog" title="4.6.8 mysqlbinlog  - 处理二进制日志文件的实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqlbinlog</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">的输出
							</font>
							<font style="vertical-align: inherit;">包括</font>
						</font><code class="literal">SET
							TIMESTAMP</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">记录每个SQL语句之前的语句，所以恢复的数据和相关的MySQL日志将反映执行事务的原始时间。
							</font>
						</font>
					</p>
				</div>

			</div>
			<div class="section">
				<div class="titlepage">
					<div>
						<div>
							<h2 class="title" style="clear: both"><a name="myisam-table-maintenance"></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">7.6 MyISAM表维护和崩溃恢复</font>
								</font>
							</h2>

						</div>

					</div>

				</div>
				<div class="toc">
					<dl class="toc"><dt><span class="section"><a href="backup-and-recovery.html#myisam-crash-recovery">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.6.1使用myisamchk进行崩溃恢复</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#myisam-check">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.6.2如何检查MyISAM表是否存在错误</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#myisam-repair">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.6.3如何修复MyISAM表</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#myisam-optimization">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.6.4 MyISAM表优化</font>
									</font>
								</a></span></dt><dt><span class="section"><a href="backup-and-recovery.html#myisam-maintenance-schedule">
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.6.5设置MyISAM表维护计划</font>
									</font>
								</a></span></dt></dl>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							本节讨论如何使用</font>
					</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisamchk的</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">检查或修复</font>
					</font><code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表（有表
						</font>
					</font><code class="filename">.MYD</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">和</font>
					</font><code class="filename">.MYI</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">文件存储数据和索引）。</font>
						<font style="vertical-align: inherit;">有关一般的
						</font>
					</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisamchk</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">背景，请参见
						</font>
					</font><a class="xref" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第4.6.4节“ </font>
						</font><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisamchk</font>
								</font>
							</strong></span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> - MyISAM表维护实用程序”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。</font>
						<font style="vertical-align: inherit;">其他表修复信息可以在</font>
					</font><a class="xref" href="installing.html#rebuilding-tables" title="2.11.13重建或修复表或索引">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第2.11.13节“重建或修复表或索引”中找到</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							您可以使用</font>
					</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisamchk</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">检查，修复或优化数据库表。</font>
						<font style="vertical-align: inherit;">以下部分介绍了如何执行这些操作以及如何设置表维护计划。</font>
						<font style="vertical-align: inherit;">有关使用</font>
					</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisamchk</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							获取有关表的信息的信息，请参见
						</font>
					</font><a class="xref" href="programs.html#myisamchk-table-info" title="4.6.4.5使用myisamchk获取表信息">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第4.6.4.5节“使用myisamchk获取表信息”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							尽管使用</font>
					</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisamchk进行</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表修复</font>
						<font style="vertical-align: inherit;">非常安全，但</font>
						<font style="vertical-align: inherit;">在进行修复或任何可能对表进行大量更改的维护操作</font>
					</font><span class="emphasis"><em>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">之前</font>
							</font>
						</em></span>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">进行</font>
						<font style="vertical-align: inherit;">备份总是一个好主意
						</font>
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;"></font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">影响索引的</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;"> myisamchk</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">操作可能导致</font>
					</font><code class="literal">MyISAM</code> <code class="literal">FULLTEXT</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							使用与MySQL服务器使用的值不兼容的全文参数重建索引。</font>
						<font style="vertical-align: inherit;">要避免此问题，请遵循</font>
					</font><a class="xref" href="programs.html#myisamchk-general-options" title="4.6.4.1 myisamchk一般选项">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第4.6.4.1节“myisamchk常规选项”中</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">的指导原则
						</font>
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<code class="literal">MyISAM</code>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">表维护也可以使用执行类似于</font>
					</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisamchk</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">可以</font>
						<font style="vertical-align: inherit;">执行的操作的SQL语句
						</font>
						<font style="vertical-align: inherit;">来完成：
						</font>
					</font>
				</p>
				<div class="itemizedlist">
					<ul class="itemizedlist" style="list-style-type: disc; ">
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										要检查</font>
								</font><code class="literal">MyISAM</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表格，请使用
									</font>
								</font><a class="link" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法"><code class="literal">CHECK
										TABLE</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										要修复</font>
								</font><code class="literal">MyISAM</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表，请使用
									</font>
								</font><a class="link" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法"><code class="literal">REPAIR
										TABLE</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										要优化</font>
								</font><code class="literal">MyISAM</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表，请使用
									</font>
								</font><a class="link" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法"><code class="literal">OPTIMIZE
										TABLE</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
						<li class="listitem">
							<p>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">
										要分析</font>
								</font><code class="literal">MyISAM</code>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">表，请使用
									</font>
								</font><a class="link" href="sql-syntax.html#analyze-table" title="13.7.3.1 ANALYZE TABLE语法"><code class="literal">ANALYZE
										TABLE</code></a>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">。
									</font>
								</font>
							</p>
						</li>
					</ul>
				</div>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							有关这些语句的其他信息，请参见
						</font>
					</font><a class="xref" href="sql-syntax.html#table-maintenance-sql" title="13.7.3表维护声明">
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">第13.7.3节“表维护语句”</font>
						</font>
					</a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<p>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">
							这些语句可以直接使用，也可以通过
						</font>
					</font><a class="link" href="programs.html#mysqlcheck" title="4.5.3 mysqlcheck  - 表维护程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">mysqlcheck</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">客户端程序使用。</font>
						<font style="vertical-align: inherit;">这些语句相对于</font>
					</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisamchk的</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">一个优点</font>
						<font style="vertical-align: inherit;">是服务器可以完成所有工作。</font>
						<font style="vertical-align: inherit;">使用</font>
					</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisamchk</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">，您必须确保服务器不会同时使用这些表，以便</font>
					</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">myisamchk</font>
								</font>
							</strong></span></a>
					<font style="vertical-align: inherit;">
						<font style="vertical-align: inherit;">和服务器</font>
						<font style="vertical-align: inherit;">之间不会发生不必要的交互
						</font>
						<font style="vertical-align: inherit;">。
						</font>
					</font>
				</p>
				<div class="section">

					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="myisam-crash-recovery"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.6.1使用myisamchk进行崩溃恢复</font>
									</font>
								</h3>
							</div>
						</div>
					</div>
					<a class="indexterm" name="idm140091709729888"></a><a class="indexterm" name="idm140091709728432"></a><a class="indexterm"
					 name="idm140091709726944"></a><a class="indexterm" name="idm140091709725872"></a>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								本节介绍如何检查和处理MySQL数据库中的数据损坏。</font>
							<font style="vertical-align: inherit;">如果您的表经常损坏，您应该尝试找出原因。</font>
							<font style="vertical-align: inherit;">请参见
							</font>
						</font><a class="xref" href="error-handling.html#crashing" title="B.4.3.3如果MySQL不断崩溃该怎么办">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第B.4.3.3节“如果MySQL不断崩溃该怎么办”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								有关</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">如何</font>
							<font style="vertical-align: inherit;">损坏的说明，请参见</font>
						</font><a class="xref" href="storage-engines.html#myisam-table-problems" title="16.2.4 MyISAM表问题">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第16.2.4节“MyISAM表问题”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果运行</font>
						</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqld</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">并禁用外部锁定（这是默认设置），则</font>
							<font style="vertical-align: inherit;">当</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span
								 class="command"><strong>
										<font style="vertical-align: inherit;">mysqld</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">使用同</font>
							<font style="vertical-align: inherit;">一个表时</font>
							<font style="vertical-align: inherit;">，您无法可靠地使用
							</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">检查
							</font>
							<font style="vertical-align: inherit;">表。</font>
							<font style="vertical-align: inherit;">如果你可以确定在</font>
							<font style="vertical-align: inherit;">运行</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span
								 class="command"><strong>
										<font style="vertical-align: inherit;">myisamchk</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">时
							</font>
							<font style="vertical-align: inherit;">没有人会通过</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span
								 class="command"><strong>
										<font style="vertical-align: inherit;">mysqld</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">访问表
							</font>
							<font style="vertical-align: inherit;">，你只需要</font>
							<font style="vertical-align: inherit;">在开始检查</font><a class="link" href="programs.html#mysqladmin" title="4.5.2 mysqladmin  - 管理MySQL服务器的客户端"><span
								 class="command"><strong>
										<font style="vertical-align: inherit;">表</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">之前</font>
							<font style="vertical-align: inherit;">执行
							</font><a class="link" href="programs.html#mysqladmin" title="4.5.2 mysqladmin  - 管理MySQL服务器的客户端"><span class="command"><strong>
										<font style="vertical-align: inherit;">mysqladmin flush-</font>
									</strong></span></a>
							<font style="vertical-align: inherit;"> tables。</font>
							<font style="vertical-align: inherit;">如果你不能保证这一点，你必须</font>
							<font style="vertical-align: inherit;">在检查表时</font>
							<font style="vertical-align: inherit;">停止
							</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
										<font style="vertical-align: inherit;">mysqld</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">如果你运行
							</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">myisamchk</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">来检查</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span
								 class="command"><strong>
										<font style="vertical-align: inherit;">mysqld的</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">表
							</font>
						</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font><a class="link" href="programs.html#mysqladmin" title="4.5.2 mysqladmin  - 管理MySQL服务器的客户端"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;"> 在同时更新时，您可能会收到一个警告，即表格已损坏，即使它没有。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果在启用外部锁定的情况下运行服务器，则可以随时使用
							</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">检查表。</font>
							<font style="vertical-align: inherit;">在这种情况下，如果服务器尝试更新</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">正在使用</font>
							<font style="vertical-align: inherit;">的表，
							</font>
							<font style="vertical-align: inherit;">服务器将等待
							</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">完成后再继续。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果使用</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">来修复或优化表，则</font>
						</font><span class="emphasis"><em>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">必须</font>
								</font>
							</em></span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">始终确保
							</font>
						</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqld</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">服务器未使用该表（如果禁用外部锁定，这也适用）。</font>
							<font style="vertical-align: inherit;">如果你不停止</font>
						</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqld</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，你至少应该在</font>
							<font style="vertical-align: inherit;">运行</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span
								 class="command"><strong>
										<font style="vertical-align: inherit;">myisamchk</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">之前
							</font>
							<font style="vertical-align: inherit;">做一个
							</font>
						</font><a class="link" href="programs.html#mysqladmin" title="4.5.2 mysqladmin  - 管理MySQL服务器的客户端"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqladmin flush-tables</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">如果服务器和
							</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">myisamchk</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">同时访问表，</font>
							<font style="vertical-align: inherit;">您的表</font><span class="emphasis"><em>
									<font style="vertical-align: inherit;">可能会损坏</font>
								</em></span>
							<font style="vertical-align: inherit;">。
							</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font><span class="emphasis"><em>
								<font style="vertical-align: inherit;"></font>
							</em></span>
						<font style="vertical-align: inherit;"></font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								执行崩溃恢复时，请务必了解</font>
							<font style="vertical-align: inherit;">数据库</font>
							<font style="vertical-align: inherit;">中的每个</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表
							</font>
						</font><em class="replaceable"><code>tbl_name</code></em>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">都对应于下表中显示的数据库目录中的三个文件。
							</font>
						</font>
					</p>
					<div class="informaltable">
						<table summary="The two files in the database directory that correspond to each MyISAM table.">
							<colgroup>
								<col width="20%">
								<col width="40%">
							</colgroup>
							<thead>
								<tr>
									<th scope="col">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">文件</font>
										</font>
									</th>
									<th scope="col">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">目的</font>
										</font>
									</th>
								</tr>
							</thead>
							<tbody>
								<tr>
									<td scope="row"><code class="filename"><em class="replaceable"><code>tbl_name</code></em>.MYD</code></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">数据文件</font>
										</font>
									</td>
								</tr>
								<tr>
									<td scope="row"><code class="filename"><em class="replaceable"><code>tbl_name</code></em>.MYI</code></td>
									<td>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">索引文件</font>
										</font>
									</td>
								</tr>
							</tbody>
						</table>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								这三种文件类型中的每一种都以各种方式受到损坏，但数据文件和索引文件中最常出现问题。
							</font>
						</font>
					</p>
					<p>
						<a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk的</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">工作原理是</font>
						</font><code class="filename">.MYD</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">逐行</font>
							<font style="vertical-align: inherit;">创建</font>
							<font style="vertical-align: inherit;">数据文件</font>
							<font style="vertical-align: inherit;">的副本
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">它通过删除旧</font>
						</font><code class="filename">.MYD</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件并将新文件重命名为原始文件名来</font>
							<font style="vertical-align: inherit;">结束修复阶段</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">如果您使用
							</font>
						</font><a class="link" href="programs.html#option_myisamchk_quick"><code class="option">--quick</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，
							</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;"> myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">不会创建临时
							</font>
						</font><code class="filename">.MYD</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件，而是假定
							</font>
						</font><code class="filename">.MYD</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件正确并且只生成新的索引文件而不触及该</font>
						</font><code class="filename">.MYD</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								文件。</font>
							<font style="vertical-align: inherit;">这是安全的，因为</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;"> myisamchk会</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								自动检测</font>
						</font><code class="filename">.MYD</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件是否损坏，如果是，则中止修复。</font>
							<font style="vertical-align: inherit;">您还可以为</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span
								 class="command"><strong>
										<font style="vertical-align: inherit;"> myisamchk</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">指定</font>
						</font><a class="link" href="programs.html#option_myisamchk_quick"><code class="option">--quick</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">两次选项
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">在这种情况下，
							</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;"></font>
								</strong></span></a>
						<font style="vertical-align: inherit;"></font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span
							 class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">不会中止某些错误（例如重复键错误），而是尝试通过修改</font>
						</font><code class="filename">.MYD</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件</font>
							<font style="vertical-align: inherit;">来解决它们</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">通常，</font>
						</font><a class="link" href="programs.html#option_myisamchk_quick"><code class="option">--quick</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">只有在可用磁盘空间太少而无法执行正常修复时，才</font>
							<font style="vertical-align: inherit;">使用两个</font>
							<font style="vertical-align: inherit;">选项。</font>
							<font style="vertical-align: inherit;">在这种情况下，您应该在运行</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;"> myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">之前至少备份表</font>
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="myisam-check"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.6.2如何检查MyISAM表是否存在错误</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<a class="indexterm" name="idm140091709664016"></a><a class="indexterm" name="idm140091709662560"></a><a class="indexterm"
					 name="idm140091709661072"></a>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要检查</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表，请使用以下命令：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisamchk的
													</font>
												</font><em class="replaceable"><code>tbl_name</code></em>
											</strong></span></a>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											这发现99.99％的错误。</font>
										<font style="vertical-align: inherit;">它找不到的是</font>
									</font><span class="emphasis"><em>
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">只</font>
											</font>
										</em></span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">涉及</font>
										<font style="vertical-align: inherit;">数据文件的</font>
										<font style="vertical-align: inherit;">腐败</font>
										<font style="vertical-align: inherit;">（非常不寻常）。</font>
										<font style="vertical-align: inherit;">如果要检查表，通常应该在</font>
										<font style="vertical-align: inherit;">没有选项或使用</font>
										<font style="vertical-align: inherit;">（silent）选项的</font>
										<font style="vertical-align: inherit;">情况</font>
										<font style="vertical-align: inherit;">下运行</font>
									</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisamchk</font>
												</font>
											</strong></span></a>
									<font style="vertical-align: inherit;"></font><code class="option">-s</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisamchk -m
													</font>
												</font><em class="replaceable"><code>tbl_name</code></em>
											</strong></span></a>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											这发现99.999％的错误。</font>
										<font style="vertical-align: inherit;">它首先检查所有索引条目是否有错误，然后读取所有行。</font>
										<font style="vertical-align: inherit;">它计算行中所有键值的校验和，并验证校验和是否与索引树中键的校验和匹配。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisamchk -e
													</font>
												</font><em class="replaceable"><code>tbl_name</code></em>
											</strong></span></a>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											这样可以对所有数据进行全面彻底的检查（</font>
									</font><code class="option">-e</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">意味着</font>
									</font><span class="quote">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">“ </font>
										</font><span class="quote">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">延长检查</font>
											</font>
										</span>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;"> ”</font>
										</font>
									</span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">）。</font>
										<font style="vertical-align: inherit;">它对每行的每个键进行检查读取，以验证它们确实指向了正确的行。</font>
										<font style="vertical-align: inherit;">对于具有许多索引的大型表，这可能需要很长时间。</font>
										<font style="vertical-align: inherit;">通常，
										</font>
									</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisamchk</font>
												</font>
											</strong></span></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">在找到第一个错误后停止。</font>
										<font style="vertical-align: inherit;">如果要获取更多信息，可以添加</font>
									</font><code class="option">-v</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">（详细）选项。</font>
										<font style="vertical-align: inherit;">这导致
										</font>
									</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisamchk</font>
												</font>
											</strong></span></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">继续前进，最多20个错误。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisamchk -e -i
													</font>
												</font><em class="replaceable"><code>tbl_name</code></em>
											</strong></span></a>
								</p>
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											这与上一个命令类似，但该
										</font>
									</font><code class="option">-i</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">选项告诉
										</font>
									</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisamchk</font>
												</font>
											</strong></span></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">打印其他统计信息。
										</font>
									</font>
								</p>
							</li>
						</ul>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								在大多数情况下，一个简单的</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">命令没有表名以外的参数就足以检查表。
							</font>
						</font>
					</p>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="myisam-repair"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.6.3如何修复MyISAM表</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<a class="indexterm" name="idm140091709635600"></a><a class="indexterm" name="idm140091709634144"></a>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								本节中的讨论描述了如何</font>
							<font style="vertical-align: inherit;">在</font>
							<font style="vertical-align: inherit;">表（扩展</font>
							<font style="vertical-align: inherit;">和
							</font>
							<font style="vertical-align: inherit;">）</font>
							<font style="vertical-align: inherit;">上</font>
							<font style="vertical-align: inherit;">使用
							</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;"></font><code class="filename">.MYI</code>
						<font style="vertical-align: inherit;"></font><code class="filename">.MYD</code>
						<font style="vertical-align: inherit;"></font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								您还可以使用</font>
						</font><a class="link" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法"><code class="literal">CHECK TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								和</font>
						</font><a class="link" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法"><code class="literal">REPAIR
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句来检查和修复</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表。</font>
							<font style="vertical-align: inherit;">请参见
							</font>
						</font><a class="xref" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第13.7.3.2节“检查表语法”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">和
							</font>
						</font><a class="xref" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第13.7.3.5节“修复表语法”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								损坏的表的症状包括意外中止的查询和可观察到的错误，例如：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											找不到文件
										</font>
									</font><code class="filename"><em class="replaceable"><code>tbl_name</code></em>.MYI</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											（ERRCODE： </font>
									</font><em class="replaceable"><code>nnn</code></em>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">）
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											意外的文件结束
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											记录文件崩溃了
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;"></font><em class="replaceable"><code>nnn</code></em>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">从表处理程序
										</font>
										<font style="vertical-align: inherit;">
											得到错误</font>
									</font>
								</p>
							</li>
						</ul>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要获取有关错误的更多信息，请运行
							</font>
						</font><a class="link" href="programs.html#perror" title="4.8.2 perror  - 显示MySQL错误消息信息"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">perror</font>
									</font>
								</strong></span></a> <em class="replaceable"><code>nnn</code></em>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，</font>
						</font><em class="replaceable"><code>nnn</code></em>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">错误号</font>
							<font style="vertical-align: inherit;">在哪里
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">以下示例显示如何使用</font>
						</font><a class="link" href="programs.html#perror" title="4.8.2 perror  - 显示MySQL错误消息信息"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">perror</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">查找指示表有问题的最常见错误号的含义：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>perror 126 127 132 134 135 136 141 144 145</code></strong><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL错误代码126 =索引文件崩溃</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL错误代码127 =记录文件崩溃</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL错误代码132 =旧数据库文件</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL错误代码134 =记录已被删除（或记录文件崩溃）</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL错误代码135 =记录文件中没有更多空间</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL错误代码136 =索引文件中没有更多空间</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL错误代码141 =写入或更新时复制唯一键或约束</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL错误代码144 =表崩溃，上次修复失败</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
MySQL错误代码145 =表被标记为崩溃，应该修复</font></font><font></font>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								请注意，错误135（记录文件中没有空间）和错误136（索引文件中没有空间）不是可以通过简单修复修复的错误。</font>
							<font style="vertical-align: inherit;">在这种情况下，您必须使用
							</font>
						</font><a class="link" href="sql-syntax.html#alter-table" title="13.1.9 ALTER TABLE语法"><code class="literal">ALTER
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">增加
							</font>
						</font><code class="literal">MAX_ROWS</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">和
							</font>
						</font><code class="literal">AVG_ROW_LENGTH</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表选项值：
							</font>
						</font>
					</p>
					<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">ALTER TABLE </font></font><em class="replaceable"><code>tbl_name</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">MAX_ROWS = </font></font><em class="replaceable"><code>xxx</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">AVG_ROW_LENGTH = </font></font><em class="replaceable"><code>yyy</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">;
</font></font></pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果您不知道当前表选项值，请使用
							</font>
						</font><a class="link" href="sql-syntax.html#show-create-table" title="13.7.6.10 SHOW CREATE TABLE语法"><code class="literal">SHOW
								CREATE TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								对于其他错误，您必须修复表。
							</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">通常可以检测并修复发生的大多数问题。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								修复过程最多涉及三个阶段，如此处所述。</font>
							<font style="vertical-align: inherit;">在开始之前，您应该将位置更改为数据库目录并检查表文件的权限。</font>
							<font style="vertical-align: inherit;">在Unix上，确保</font>
						</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqld</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">运行</font>
							<font style="vertical-align: inherit;">的用户可以读取它们
							</font>
							<font style="vertical-align: inherit;">（对你而言，因为你需要访问你正在检查的文件）。</font>
							<font style="vertical-align: inherit;">如果结果你需要修改文件，它们也必须是你可写的。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								本节适用于表检查失败的情况（例如</font>
						</font><a class="xref" href="backup-and-recovery.html#myisam-check" title="7.6.2如何检查MyISAM表是否存在错误">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第7.6.2节“如何检查MyISAM表中的错误”中所述的情况</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">），或者您希望使用</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								提供</font>
							<font style="vertical-align: inherit;">的扩展功能</font>
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">用于表维护</font>
							<font style="vertical-align: inherit;">
								的</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">选项在</font>
						</font><a class="xref" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第4.6.4节“ </font>
							</font><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;"> - MyISAM表维护实用程序”中介绍</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">还有一些变量可以设置为控制可以提高性能的内存分配。</font>
							<font style="vertical-align: inherit;">请参见
							</font>
						</font><a class="xref" href="programs.html#myisamchk-memory" title="4.6.4.6 myisamchk内存使用情况">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第4.6.4.6节“myisamchk内存使用”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果要从命令行修复表，则必须先停止</font>
						</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqld</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">服务器。</font>
							<font style="vertical-align: inherit;">请注意，当您</font>
							<font style="vertical-align: inherit;">在远程服务器上</font>
							<font style="vertical-align: inherit;">执行</font>
						</font><a class="link" href="programs.html#mysqladmin" title="4.5.2 mysqladmin  - 管理MySQL服务器的客户端"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqladmin shutdown</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">时，</font>
						</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqld</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">服务器在</font>
						</font><a class="link" href="programs.html#mysqladmin" title="4.5.2 mysqladmin  - 管理MySQL服务器的客户端"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqladmin</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">返回</font>
							<font style="vertical-align: inherit;">后仍然可用一段时间</font>
							<font style="vertical-align: inherit;">，直到所有语句处理已停止并且所有索引更改都已刷新到磁盘。
							</font>
						</font>
					</p>
					<p>
						<span class="bold"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第1阶段：检查你的桌子</font>
								</font>
							</strong></span>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">如果你有更多的时间，请</font>
							<font style="vertical-align: inherit;">
								运行</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk * .MYI</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">或</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk -e * .MYI</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">使用
							</font>
						</font><code class="option">-s</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">（静音）选项可以抑制不必要的信息。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果</font>
						</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqld</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">服务器停止，你应该使用该</font>
						</font><a class="link" href="programs.html#option_myisamchk_update-state"><code class="option">--update-state</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">选项告诉</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">将表标记为
							</font>
						</font><span class="quote">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">“已</font>
							</font><span class="quote">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">检查”。</font>
								</font>
							</span>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">”</font>
							</font>
						</span>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								您必须仅修复</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">宣布错误的</font>
							<font style="vertical-align: inherit;">那些表
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">对于此类表格，请转到第2阶段。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果在检查时遇到意外错误（例如</font>
						</font><code class="literal">out
							of memory</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">错误），或者</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								崩溃，请转到第3阶段。
							</font>
						</font>
					</p>
					<p>
						<span class="bold"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第2阶段：轻松安全维修</font>
								</font>
							</strong></span>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								首先，尝试</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk -r -q
										</font>
									</font><em class="replaceable"><code>tbl_name</code></em>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">（</font>
						</font><code class="option">-r
							-q</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">意思是</font>
						</font><span class="quote">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">“ </font>
							</font><span class="quote">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">快速恢复模式</font>
								</font>
							</span>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;"> ”</font>
							</font>
						</span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">）。</font>
							<font style="vertical-align: inherit;">这会尝试修复索引文件而不触及数据文件。</font>
							<font style="vertical-align: inherit;">如果数据文件包含它应该包含的所有内容，并且删除链接指向数据文件中的正确位置，则应该可以使用，并且表是固定的。</font>
							<font style="vertical-align: inherit;">开始修复下一张桌子。</font>
							<font style="vertical-align: inherit;">否则，请使用以下过程：
							</font>
						</font>
					</p>
					<div class="orderedlist">
						<ol class="orderedlist" type="1">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											在继续之前备份数据文件。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											使用</font>
									</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisamchk -r
													</font>
												</font><em class="replaceable"><code>tbl_name</code></em>
											</strong></span></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											（</font>
									</font><code class="option">-r</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">表示</font>
									</font><span class="quote">
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">“ </font>
										</font><span class="quote">
											<font style="vertical-align: inherit;">
												<font style="vertical-align: inherit;">恢复模式</font>
											</font>
										</span>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;"> ”</font>
										</font>
									</span>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">）。</font>
										<font style="vertical-align: inherit;">这将从数据文件中删除不正确的行和已删除的行，并重建索引文件。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											如果上一步失败，请使用</font>
									</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
												<font style="vertical-align: inherit;">
													<font style="vertical-align: inherit;">myisamchk --safe-recover
													</font>
												</font><em class="replaceable"><code>tbl_name</code></em>
											</strong></span></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">。</font>
										<font style="vertical-align: inherit;">安全恢复模式使用旧的恢复方法来处理常规恢复模式不能（但速度较慢）的一些情况。
										</font>
									</font>
								</p>
							</li>
						</ol>
					</div>
					<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
						<div class="admon-title">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									注意
								</font>
							</font>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									如果你想有一个修复操作去得更快，你应该设置的值
								</font>
							</font><a class="link" href="server-administration.html#sysvar_sort_buffer_size"><code class="literal">sort_buffer_size</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">，并
								</font>
							</font><a class="link" href="server-administration.html#sysvar_key_buffer_size"><code class="literal">key_buffer_size</code></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">运行时，每一个变量到您的可用内存的大约25％
								</font>
							</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
										<font style="vertical-align: inherit;">
											<font style="vertical-align: inherit;">myisamchk的</font>
										</font>
									</strong></span></a>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。
								</font>
							</font>
						</p>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								如果修复时出现意外错误（例如
							</font>
						</font><code class="literal">out of memory</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">错误），或者
							</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">崩溃，请转到第3阶段。
							</font>
						</font>
					</p>
					<p>
						<span class="bold"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">第3阶段：难以修复</font>
								</font>
							</strong></span>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								只有当索引文件中的第一个16KB块被销毁或包含不正确的信息，或者索引文件丢失时，才应该到达此阶段。</font>
							<font style="vertical-align: inherit;">在这种情况下，需要创建一个新的索引文件。</font>
							<font style="vertical-align: inherit;">这样做如下：
							</font>
						</font>
					</p>
					<div class="orderedlist">
						<ol class="orderedlist" type="1">
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											将数据文件移动到安全的位置。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											使用表描述文件创建新的（空）数据和索引文件：
										</font>
									</font>
								</p>
								<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>mysql <em class="replaceable"><code>db_name</code></em></code></strong>
</pre>
								<pre data-lang="sql" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">mysql&gt; </font></font><strong class="userinput"><code>SET autocommit=1;</code></strong><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
mysql&gt; </font><font style="vertical-align: inherit;">
mysql&gt;</font></font><strong class="userinput"><code>TRUNCATE TABLE <em class="replaceable"><code>tbl_name</code></em>;</code></strong><font style="vertical-align: inherit;"></font><strong class="userinput"><code>quit</code></strong>
</pre>
							</li>
							<li class="listitem">
								<p>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											将旧数据文件复制回新创建的数据文件。</font>
										<font style="vertical-align: inherit;">（不要只将旧文件移回新文件。如果出现问题，您希望保留副本。）
										</font>
									</font>
								</p>
							</li>
						</ol>
					</div>
					<div class="important" style="margin-left: 0.5in; margin-right: 0.5in;">
						<div class="admon-title">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									重要
								</font>
							</font>
						</div>
						<p>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">
									如果您正在使用复制，则应在执行上述过程之前将其停止，因为它涉及文件系统操作，并且MySQL不会记录这些操作。
								</font>
							</font>
						</p>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								回到第2阶段</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">.myisamchk -r -q</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">应该可以工作。</font>
							<font style="vertical-align: inherit;">（这不应该是无限循环。）
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								您还可以使用</font>
							<font style="vertical-align: inherit;">SQL语句，该语句自动执行整个过程。</font>
							<font style="vertical-align: inherit;">实用程序和服务器之间也不可能发生不需要的交互，因为服务器在您使用时会完成所有工作</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">请参见
							</font><a class="xref" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法">
								<font style="vertical-align: inherit;">第13.7.3.5节“修复表语法”</font>
							</a>
							<font style="vertical-align: inherit;">。
							</font>
						</font><code class="literal">REPAIR TABLE
							<em class="replaceable"><code>tbl_name</code></em> USE_FRM</code>
						<font style="vertical-align: inherit;"></font><a class="link" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法"><code
							 class="literal">REPAIR TABLE</code></a>
						<font style="vertical-align: inherit;"></font><a class="xref" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法">
							<font style="vertical-align: inherit;"></font>
						</a>
						<font style="vertical-align: inherit;"></font>
					</p>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="myisam-optimization"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.6.4 MyISAM表优化</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<a class="indexterm" name="idm140091709537376"></a><a class="indexterm" name="idm140091709535920"></a>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								要合并碎片行并消除因删除或更新行而导致的浪费空间，请</font>
							<font style="vertical-align: inherit;">在恢复模式下</font>
							<font style="vertical-align: inherit;">运行
							</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>myisamchk -r <em class="replaceable"><code>tbl_name</code></em></code></strong>
</pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								您可以使用</font>
						</font><a class="link" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法"><code class="literal">OPTIMIZE
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">SQL语句</font>
							<font style="vertical-align: inherit;">以相同的方式优化表
							</font>
							<font style="vertical-align: inherit;">。
							</font>
						</font><a class="link" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法"><code class="literal">OPTIMIZE
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">进行表修复和密钥分析，并对索引树进行排序，以便密钥查找更快。</font>
							<font style="vertical-align: inherit;">实用程序和服务器之间也不可能发生不需要的交互，因为服务器在您使用时会完成所有工作</font>
						</font><a class="link" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法"><code class="literal">OPTIMIZE
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">请参见</font>
						</font><a class="xref" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第13.7.3.4节“OPTIMIZE TABLE语法”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">还有许多其他选项可用于提高表的性能：
							</font>
						</font>
					</p>
					<div class="itemizedlist">
						<ul class="itemizedlist" style="list-style-type: disc; ">
							<li class="listitem">
								<p>
									<a class="link" href="programs.html#option_myisamchk_analyze"><code class="option">--analyze</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">或
										</font>
									</font><code class="option">-a</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">：执行密钥分发分析。</font>
										<font style="vertical-align: inherit;">这可以通过使连接优化器更好地选择连接表的顺序以及应该使用的索引来提高连接性能。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<a class="link" href="programs.html#option_myisamchk_sort-index"><code class="option">--sort-index</code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">或
										</font>
									</font><code class="option">-S</code>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">：对索引块进行排序。</font>
										<font style="vertical-align: inherit;">这样可以优化搜索并使表扫描更快地使用索引。
										</font>
									</font>
								</p>
							</li>
							<li class="listitem">
								<p>
									<a class="link" href="programs.html#option_myisamchk_sort-records"><code class="option">--sort-records=<em
											 class="replaceable"><code>index_num</code></em></code></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">
											或</font>
										<font style="vertical-align: inherit;">：根据给定索引对数据行进行排序。</font>
										<font style="vertical-align: inherit;">这使您的数据更加本地化，​​并且可以加速</font>
										<font style="vertical-align: inherit;">使用此索引</font>
										<font style="vertical-align: inherit;">的基于范围
										</font>
										<font style="vertical-align: inherit;">和</font>
										<font style="vertical-align: inherit;">操作。
										</font>
									</font><code class="option">-R <em class="replaceable"><code>index_num</code></em></code>
									<font style="vertical-align: inherit;"></font><a class="link" href="sql-syntax.html#select" title="13.2.10 SELECT语法"><code
										 class="literal">SELECT</code></a>
									<font style="vertical-align: inherit;"></font><code class="literal">ORDER
										BY</code>
									<font style="vertical-align: inherit;"></font>
								</p>
							</li>
						</ul>
					</div>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								有关所有可用选项的完整说明，请参见
							</font>
						</font><a class="xref" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第4.6.4节“ </font>
							</font><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;"> - MyISAM表维护实用程序”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
				</div>
				<div class="section">
					<div class="titlepage">
						<div>
							<div>
								<h3 class="title"><a name="myisam-maintenance-schedule"></a>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">7.6.5设置MyISAM表维护计划</font>
									</font>
								</h3>

							</div>

						</div>

					</div>
					<a class="indexterm" name="idm140091709511472"></a><a class="indexterm" name="idm140091709509984"></a>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								最好定期执行表检查，而不是等待问题发生。</font>
							<font style="vertical-align: inherit;">检查和修复</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表的</font>
							<font style="vertical-align: inherit;">一种方法</font>
							<font style="vertical-align: inherit;">是使用
							</font>
						</font><a class="link" href="sql-syntax.html#check-table" title="13.7.3.2检查表语法"><code class="literal">CHECK TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">和
							</font>
						</font><a class="link" href="sql-syntax.html#repair-table" title="13.7.3.5 REPAIR TABLE语法"><code class="literal">REPAIR
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">语句。</font>
							<font style="vertical-align: inherit;">请参见
							</font>
						</font><a class="xref" href="sql-syntax.html#table-maintenance-sql" title="13.7.3表维护声明">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第13.7.3节“表维护声明”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								检查表的另一种方法是使用
							</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">出于维护目的，您可以使用</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk -s</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">的</font>
						</font><code class="option">-s</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								选项（简称</font>
						</font><a class="link" href="programs.html#option_myisamchk_silent"><code class="option">--silent</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">）导致</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk的</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">到无声模式运行，印刷消息只有当出现错误。
							</font>
						</font>
					</p><a class="indexterm" name="idm140091709498464"></a>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								启用自动</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">表检查</font>
							<font style="vertical-align: inherit;">也是一个好主意
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">例如，只要机器在更新过程中重新启动，您通常需要在进一步使用之前检查可能受影响的每个表。</font>
							<font style="vertical-align: inherit;">（这些都是</font>
						</font><span class="quote">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">“ </font>
							</font><span class="quote">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">预计坠毁表</font>
								</font>
							</span>
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">。 ”</font>
							</font>
						</span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">），使服务器检查
							</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">自动表，与启动</font>
						</font><a class="link" href="server-administration.html#option_mysqld_myisam-recover-options"><code class="option">--myisam-recover-options</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								选项。</font>
							<font style="vertical-align: inherit;">请参见</font>
						</font><a class="xref" href="server-administration.html#server-options" title="5.1.7服务器命令选项">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第5.1.7节“服务器命令选项”</font>
							</font>
						</a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								您还应该在正常系统操作期间定期检查您的表。</font>
							<font style="vertical-align: inherit;">例如，您可以运行一个</font>
						</font><span class="command"><strong>
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">cron</font>
								</font>
							</strong></span>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								作业来每周检查一次重要的表，在</font>
						</font><code class="filename">crontab</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">文件中</font>
							<font style="vertical-align: inherit;">使用这样的行</font>
							<font style="vertical-align: inherit;">：
							</font>
						</font>
					</p>
					<pre data-lang="simple" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">35 0 * * 0  - </font></font><em class="replaceable"><code>/path/to/myisamchk</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">fast --silent </font></font><em class="replaceable"><code>/path/to/datadir</code></em><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">/*/*.MYI
</font></font></pre>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								这将打印出有关崩溃表的信息，以便您可以根据需要检查和修复它们。
							</font>
						</font>
					</p>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								首先，</font>
							<font style="vertical-align: inherit;">每晚在所有在过去24小时内更新的表上</font>
							<font style="vertical-align: inherit;">执行</font>
						</font><a class="link" href="programs.html#myisamchk" title="4.6.4 myisamchk  -  MyISAM表维护实用程序"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">myisamchk -s</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">如您所见，问题很少发生，您可以将检查频率提前一周左右。
							</font>
						</font>
					</p><a class="indexterm" name="idm140091709486800"></a>
					<p>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">
								通常，MySQL表几乎不需要维护。</font>
							<font style="vertical-align: inherit;">如果要对</font>
						</font><code class="literal">MyISAM</code>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">具有动态大小的行（带有</font>
						</font><a class="link" href="data-types.html#char" title="11.4.1 CHAR和VARCHAR类型"><code class="literal">VARCHAR</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">，
							</font>
						</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">BLOB</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">或
							</font>
						</font><a class="link" href="data-types.html#blob" title="11.4.3 BLOB和TEXT类型"><code class="literal">TEXT</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">列的表）的</font>
							<font style="vertical-align: inherit;">表</font>
							<font style="vertical-align: inherit;">执行许多更新，</font>
							<font style="vertical-align: inherit;">或者对具有许多已删除行的</font>
							<font style="vertical-align: inherit;">表
							</font>
							<font style="vertical-align: inherit;">执行许多更新，则</font>
							<font style="vertical-align: inherit;">可能需要不时对表中的空间进行碎片整理/回收。</font>
							<font style="vertical-align: inherit;">您可以通过使用</font>
						</font><a class="link" href="sql-syntax.html#optimize-table" title="13.7.3.4 OPTIMIZE TABLE语法"><code class="literal">OPTIMIZE
								TABLE</code></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">相关表格</font>
							<font style="vertical-align: inherit;">来执行此操作
							</font>
							<font style="vertical-align: inherit;">。</font>
							<font style="vertical-align: inherit;">或者，如果您可以暂停
							</font>
						</font><a class="link" href="programs.html#mysqld" title="4.3.1 mysqld  -  MySQL服务器"><span class="command"><strong>
									<font style="vertical-align: inherit;">
										<font style="vertical-align: inherit;">mysqld</font>
									</font>
								</strong></span></a>
						<font style="vertical-align: inherit;">
							<font style="vertical-align: inherit;">服务器一段时间，请将位置更改为数据目录，并在服务器停止时使用此命令：
							</font>
						</font>
					</p>
					<pre data-lang="terminal" class="programlisting"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">外壳&gt; </font></font><strong class="userinput"><code>myisamchk -r -s --sort-index --myisam_sort_buffer_size=16M */*.MYI</code></strong>
</pre>
				</div>

			</div>

		</div>
		<div class="copyright-footer">

		</div>
		<div class="navfooter">
			<hr>
			<table width="100%" summary="Navigation footer">
				<tbody>
					<tr>
						<td width="40%" align="left"><a accesskey="p" href="security.html">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">上一页</font>
								</font>
							</a></td>
						<td width="20%" align="center"><a accesskey="u" href="">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">向上</font>
								</font>
							</a></td>
						<td width="40%" align="right">&nbsp;<a accesskey="n" href="optimization.html">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">下一个</font>
								</font>
							</a></td>
					</tr>
					<tr>
						<td width="40%" align="left" valign="top">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第6章安全性</font>
							</font>
						</td>
						<td width="20%" align="center"><a accesskey="h" href="index.html">
								<font style="vertical-align: inherit;">
									<font style="vertical-align: inherit;">家</font>
								</font>
							</a></td>
						<td width="40%" align="right" valign="top">
							<font style="vertical-align: inherit;">
								<font style="vertical-align: inherit;">第8章优化</font>
							</font>
						</td>
					</tr>
				</tbody>
			</table>
		</div>
		<div id="goog-gt-tt" class="skiptranslate" dir="ltr">
			<div style="padding: 8px;">
				<div>
					<div class="logo"><img src="https://www.gstatic.com/images/branding/product/1x/translate_24dp.png" width="20"
						 height="20" alt="Google 翻译"></div>
				</div>
			</div>
			<div class="top" style="padding: 8px; float: left; width: 100%;">
				<h1 class="title gray">原文</h1>
			</div>
			<div class="middle" style="padding: 8px;">
				<div class="original-text"></div>
			</div>
			<div class="bottom" style="padding: 8px;">
				<div class="activity-links"><span class="activity-link">提供更好的翻译建议</span><span class="activity-link"></span></div>
				<div class="started-activity-container">
					<hr style="color: #CCC; background-color: #CCC; height: 1px; border: none;">
					<div class="activity-root"></div>
				</div>
			</div>
			<div class="status-message" style="display: none;"></div>
		</div>


		<div class="goog-te-spinner-pos">
			<div class="goog-te-spinner-animation"><svg xmlns="http://www.w3.org/2000/svg" class="goog-te-spinner" width="96px"
				 height="96px" viewBox="0 0 66 66">
					<circle class="goog-te-spinner-path" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
				</svg></div>
		</div>
	</body>
</html>
